这是我制作的一个简单数据框,数据最初是pdf格式的,这就是为什么我先输入列名然后再输入行的原因。
skupni_indeksi <- data.frame(Proizvod =NA, Mjerna_jedinica=NA,Količine_2007=0,Količine_2008=0,Cijene_2007=0,Cijene_2008=0,stringsAsFactors = F)
skupni_indeksi[1,] <- c("A", "komad", 10, 12, 25, 30)
skupni_indeksi[2,] <-c("B", "litra", 30, 40, 40, 40)
skupni_indeksi[3,] <-c("C", "m2", 20, 15, 60, 72)
我知道还有其他输入此类数据的方法,但是我的问题与数据框的行为有关。例如,查看列Cijene_2007。它最初是一个数字,新行都将数字放入该列。使用str(skupni_indeksi)检查时,为什么字符类型的列呢?
我找到了一种手动解决方案,可以将所需的列简单地转换为数字:
skupni_indeksi[,3:6] <- sapply(skupni_indeksi[,3:6], as.numeric)
可解决此问题。我可以先做一些不同的事情而不需要此行吗?
c("A", "komad", 10, 12, 25, 30)
是向量。向量只能具有一个类别。
由于您混合了数字和字符,因此将数字转换为字符。
class(c("A", "komad", 10, 12, 25, 30))
#[1] "character"
您正在以行方式填充数据框。通常,最好以列方式填充它们,以免发生这种数据转换。