Questa domanda forse ha avuto risposta in precedenza, ma non ho visto una risposta.R: numero intero contro numerico
Ho un set di dati che consiste di numeri e valori mancanti. Una riga è una percentuale. Di seguito è riportato un piccolo insieme di dati falsi in cui AA, BB e CC sono i nomi delle colonne. La terza riga in questo set di dati è la percentuale.
AA BB CC
234 432 78
1980 3452 2323
91.1 90 93.3
34 123 45
In questo caso, quando leggo il set di dati AA e CC sono numerici e BB è intero. Immagino che da qualche parte 90.0 sia stato arrotondato a 90. Se non specificassi che BB è numerico, ciò potrebbe causare problemi con l'aritmetica di base?
Credo che se dd = 1 ed ee = 2 ed entrambi sono interi allora il linguaggio C dice dd/ee = 0, mentre R dice dd/ee = 0.5.
Di seguito è riportata una serie di semplici operazioni matematiche che sembrano suggerire che le risposte in R non sono modificate indipendentemente dal fatto che i dati siano numerici o interi. Tuttavia, continuo a pensare che sarebbe intelligente specificare che tutte le variabili sono numeriche durante la lettura dei dati. Usando Google ho trovato un esempio o due in cui il tipo di dati sembra fare la differenza, ma non al di sotto.
aa <- c(1,2,3,4,5,6,7)
bb <- 2
str(aa)
str(bb)
cc <- as.integer(aa)
dd <- as.integer(bb)
str(cc)
str(dd)
aa/bb
cc/dd
aa/dd
cc/bb
ee <- aa * aa
str(ee)
sum(ee/2)
ff <- cc * cc
str(ff)
sum(ff/2)
gg <- 4.14
hh <- ((aa * aa) * gg)/2
hh
ii <- ((cc * cc) * gg)/2
ii
jj <- (aa * aa)/gg
jj
kk <- (cc * cc)/gg
kk
jj == kk
mm <- as.integer(1)
nn <- as.integer(2)
mm/nn
immagino spero per rassicurazione che questo non è probabile un problema con la matematica semplice, ma ho il sospetto che può. Continuo a pensare che qui ci sia una regola fondamentale di programmazione, ma non sono sicuro di cosa sia. (Sono consapevole del concetto di doppia precisione.)
Grazie per qualsiasi consiglio con quello che è sicuramente un problema di base.