RStudio'中c(…)的含义;s数据浏览器

RStudio'中c(…)的含义;s数据浏览器,r,vector,dataframe,rstudio,R,Vector,Dataframe,Rstudio,如您所知,在RStudio中工作并在R模块中调用View()时,查找此模块会打开RStudio的内部数据浏览器窗口。虽然大多数简单的数据是可以理解的,但看到这样的数据,我感到困惑:c(NA,NA,NA,125125,NA)。它代表什么?这看起来像是向量的标准符号。但是,我希望在该位置嵌入一个数据帧。请澄清 c(…)在RStudio的数据浏览器中确实意味着“向量”。。这是一个最小的可重复的例子 set.seed(1) df1 <- data.frame(id=LETTERS[1:10])

如您所知,在
RStudio
中工作并在R模块中调用
View()
时,查找此模块会打开RStudio的内部数据浏览器窗口。虽然大多数简单的数据是可以理解的,但看到这样的数据,我感到困惑:
c(NA,NA,NA,125125,NA)
。它代表什么?这看起来像是向量的标准符号。但是,我希望在该位置嵌入一个数据帧。请澄清

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)

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

字符串视图(“c(NA,NA,NA,125125,NA)”@Aashu:谢谢您的评论。从数据浏览器的角度来看,它是字符串,这是对的。然而,我很好奇这种编码的原因。我想,这是Jeroen Ooms的一个问题,因为这些数据是由他的
jsonlite
库生成的。不确定他是否会读到这篇文章,所以我会尝试通过电子邮件与他联系。让你的问题重现。该对象被强制转换为数据帧,因此正如aashu所说,该对象可能是一个字符串,但我们无法确定,因为这是不可复制的。@rawr:谢谢!要让这个问题重现并不容易,因为处理过程涉及到相当多的代码。然而,我越想它,我就越觉得答案在于我使用的包如何表示数据。我联系了软件包的作者,根据他的回答,我将决定下一步。将相应地更新此线程。谢谢您的回答!很好的例子,如果有点太高级了(对于我的理解水平来说:-)!投票并接受作为我问题的答案!您是否介意(单独)修改您的示例以查看()一个数据帧,其中包含作为嵌入元素的数据帧?但是您可以使用不同于c的字母作为向量吗?@Siyah:可能不会,除非您定义了另一个调用
c()
的单字母函数。根据R文档,
c()
中的“c”指的是将值组合到一个向量或列表中,因此,考虑到多个选项,现有的命名是有意义的。
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)