R中的“df []< - ”是做什么的

时间:2014-01-16 15:14:07

标签: r variables dataframe

非常简单的问题,我在google和stackoverflow中进行了快速搜索。 我在另一篇文章中发现了这一点:In aggregate: sum not meaningful for factors

df[] <- lapply(df, function(x) type.convert(as.character(x)))

df[]如何运作?

2 个答案:

答案 0 :(得分:9)

为了补充Roland所写的内容,{edit} aaagh他忍不住我的评论重点是使用DF[]保留现有对象DF它的属性,在这种情况下,它有两个维度,名称为ab

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