【发布时间】:2014-10-04 16:53:07
【问题描述】:
我使用read.table() 和header=T 得到了这个问题,试图从data.frame 和as.double(as.character()) 中提取双精度向量(参见?factor)。
但这只是如何我意识到我不理解 R 的逻辑。所以你不会看到例如read.table 在下面的代码中,只有必要的部分。你能告诉我以下选项有什么区别吗?
-
与
header=T等效:(a <- data.frame(array(c(0.5,0.5,0.5,0.5), c(1,4)))) as.character(a) # [1] "0.5" "0.5" "0.5" "0.5" -
没有
header=T等效:b <- data.frame(array(c("a",0.5,"b",0.5,"c",0.5,"d",0.5), c(2,4))) (a <- b[2,]) as.character(a) # [1] "1" "1" "1" "1" (a <- data.frame(a, row.names=NULL)) # now there's not even a visual difference as.character(a) # [1] "1" "1" "1" "1"
【问题讨论】:
-
您正在与
factors 打交道。将stringsAsFactors = FALSE添加到您的data.frame步骤中并进行比较。 -
使用
read.table和变体时的stringsAsFactors转换是常见的混淆来源。与往常一样,在您的数据上使用str以准确了解您正在处理的内容可能非常有价值。一旦您了解了stringsAsFactors参数,它就会成为一个非常有用的工具。如果您选择options(stringsAsFactors = FALSE),也可以全局设置选项。 -
哇,谢谢。我会阅读因素。
标签: r class dataframe double character