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