RStudio数据浏览器中c(...)的含义

时间:2014-03-04 12:32:35

标签: r vector dataframe rstudio

如您所知,在RStudio工作并在 R 模块中调用View()时,获取此模块会导致打开RStudio的内部数据浏览器窗口。虽然大多数简单数据都是可以理解的,但我很惊讶看到这样的数据:c(NA, NA, NA, 125125, NA)。它代表什么?这看起来像向量的标准 R 表示法。但是,我希望该位置有嵌入式 数据框。希望澄清!

1 个答案:

答案 0 :(得分:2)

c(...)确实意味着RStudio数据浏览器中的“向量”。这是一个可重复性最小的示例。

set.seed(1)
df1   <- data.frame(id=LETTERS[1:10])
# each element of df1$x is char
df1$x <- sapply(1:10,function(i)do.call(paste,as.list(letters[sample(1:10,5)])))
# each element of df2$x is a vector of char
df2   <- aggregate(x~id,df1,function(x)strsplit(as.character(x)," "))
View(df2)

在上文中,df1$x的每个元素都是一个包含5个随机,空格分隔字符的字符串。此示例中的“聚合”函数在strsplit(...)的每个值上运行df1$x以返回字符向量,这些字符存储在df2$x的元素中。因此,当您在RStudio中View(df2)时,它反映了df2$x的每个元素都是向量的事实。

编辑(对OP评论的回应)

这会创建一个数据框(df1),其中df1$z的每个元素都是一个数据框。

df1   <- data.frame(id=LETTERS[1:3])
df    <- data.frame(id=rep(letters[1:3],each=10),x=rnorm(30), y=rnorm(30))
df1$z <- split(df,df$id)
View(df1)

请注意,RStudio将df1$z显示为向量列表,实际上它是数据帧的基础结构。