在R中设置数据帧的行时,因子级别无效

时间:2015-02-15 19:56:18

标签: r

这对我来说有点困惑,我正在采取的步骤是:

创建数据框:

df <- data.frame(one=numeric(5), two=character(5))

这使得一个数据框的列为&#34;一个&#34;和&#34;两个&#34;有5个空行。然后我可以尝试为一行赋值。

df[1,] <- list(1, "test")

这会导致错误。如果我使用纯数值进行操作则没有问题。此外,如果我使用list(1,&#34;&#34;)也可以。

列表可以处理不同的矢量类型,因此数据帧也可以处理,因此我可能会犯一个语法错误,但我似乎无法弄明白。

感谢您帮助新学员=)

2 个答案:

答案 0 :(得分:4)

为避免转换为factor课程,您可以将选项设置为stringsAsFactors=FALSE或在data.frame

中指定
 op <- options(stringsAsFactors=FALSE)
 df[1,] <- list(1, "test")
 options(op)
 df
 #  one  two
 #1   1 test
 #2   0     
 #3   0     
 #4   0     
 #5   0     

答案 1 :(得分:1)

如评论中所述,您应该在构建数据框时阻止将字符串转换为因子。 完整代码:

df <- data.frame(one=numeric(5), two=character(5), stringsAsFactors=FALSE)
df[1,] <- list(1, "test")

应该可以正常工作。