问题很简单,我在谷歌和stackoverflow上进行了快速搜索。我在另一个帖子中找到了这个:In aggregate: sum not meaningful for factors。
df[] <- lapply(df, function(x) type.convert(as.character(x)))
df[]
如何工作?
问题很简单,我在谷歌和stackoverflow上进行了快速搜索。我在另一个帖子中找到了这个:In aggregate: sum not meaningful for factors。
df[] <- lapply(df, function(x) type.convert(as.character(x)))
df[]
如何工作?
它调用[<-.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
m <- matrix(1,5,5)
,然后将 m[] <- 5
与 m <- 5
进行比较。 - joran在Roland写的内容中,需要补充的是,使用DF []
会保留现有对象DF
及其属性,包括它有两个维度和名称为a
和b
的事实。{edit} 啊,他的评论抢先一步。
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
df <-
创建一个新对象,df[] <-
修改一个已存在的对象。 - hadley