这对我来说有点困惑,我正在采取的步骤是:
创建数据框:
df <- data.frame(one=numeric(5), two=character(5))
这使得一个数据框的列为&#34;一个&#34;和&#34;两个&#34;有5个空行。然后我可以尝试为一行赋值。
df[1,] <- list(1, "test")
这会导致错误。如果我使用纯数值进行操作则没有问题。此外,如果我使用list(1,&#34;&#34;)也可以。
列表可以处理不同的矢量类型,因此数据帧也可以处理,因此我可能会犯一个语法错误,但我似乎无法弄明白。
感谢您帮助新学员=)
答案 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")
应该可以正常工作。