非常简单的问题,我在google和stackoverflow中进行了快速搜索。 我在另一篇文章中发现了这一点:In aggregate: sum not meaningful for factors。
df[] <- lapply(df, function(x) type.convert(as.character(x)))
df[]
如何运作?
答案 0 :(得分:9)
为了补充Roland所写的内容,{edit} aaagh他忍不住我的评论重点是使用DF[]
保留现有对象DF
它的属性,在这种情况下,它有两个维度,名称为a
和b
。
Rgames> foo<- matrix(1:6,2,3)
Rgames> foo[]<-7:12
Rgames> foo
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
Rgames> foo<-7:12
Rgames> foo
[1] 7 8 9 10 11 12
答案 1 :(得分:7)
它调用[<-.data.frame
(即[<-
的data.frame方法)。这样就可以为data.frame分配一个列表。你也可以这样做
df <- as.data.frame(lapply(df, function(x) type.convert(as.character(x))))
示例:
DF <- data.frame(a=1:2, b=3:4)
DF[] <- list(c=10:11, d=12:13)
# a b
# 1 10 12
# 2 11 13
但与此相比:
DF <- `[<-.data.frame`(DF, , , list(c=c("a", "b"), d=c("d", "e")))
# c d
# 1 a d
# 2 b e
VS。这样:
DF <- `[<-.data.frame`(DF, 1:2, 1:2, list(c=c("a", "b"), d=c("d", "e")))
# a b
#1 a d
#2 b e
还有:
DF <- as.data.frame(list(c=10:11, d=12:13))
# c d
# 1 10 12
# 2 11 13