Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R包括数据帧中的字符串列表_R_List_Dataframe - Fatal编程技术网

R包括数据帧中的字符串列表

R包括数据帧中的字符串列表,r,list,dataframe,R,List,Dataframe,我试图为维基百科用户所做的每一次编辑创建一个人工数据框,由用户贡献和删除的单词组成,最终结果如下所示: 我创建了一些人工数据来构建这样一个框架,但变量“Tokens Added”和“Tokens deleted”有问题 我认为将它们创建为列表列表将允许我将它们包括在数据帧中,即使元素的长度并不总是相等。但显然情况并非如此。相反,R为每个令牌创建一个变量。这是不可行的,因为它会产生数百万个变量。下面是一些代码示例: a <- c(1,2,3) e <- list(b = as.lis

我试图为维基百科用户所做的每一次编辑创建一个人工数据框,由用户贡献和删除的单词组成,最终结果如下所示:

我创建了一些人工数据来构建这样一个框架,但变量“Tokens Added”和“Tokens deleted”有问题

我认为将它们创建为列表列表将允许我将它们包括在数据帧中,即使元素的长度并不总是相等。但显然情况并非如此。相反,R为每个令牌创建一个变量。这是不可行的,因为它会产生数百万个变量。下面是一些代码示例:

a <- c(1,2,3)
e <- list(b = as.list(c("a","b")),c = as.list(c(1L,3L,5L,4L)),d = as.list(c(TRUE,FALSE,TRUE)))

DF <- cbind(a,e)
U <- data.frame(a,e)
a试试这个:

cbind(a,lapply(e,function(x) paste(unlist(x),collapse=",")))

我不认为你想要什么是可能的使用一个向量的列表(正如你在你的问题中所建议的)。这主要是因为无法在R中创建列表向量(请参见:)

但是,一个选项(如果您确实需要
data.frame
)是将所有内容强制为一个字符(R中最灵活的类型)。这样的东西可能适合你:

e <- c(paste0(c("a","b"),collapse=","), paste0(c(1L,3L,5L,4L), collapse = ","), paste0(c(TRUE,FALSE,TRUE), collapse = ","))
U <- data.frame(a,e, stringAsFactors = F)

U
#  a               e
#1 1             a,b
#2 2         1,3,5,4
#3 3 TRUE,FALSE,TRUE

如果您愿意使用
库(tibble)
,您可以完全按照自己的意愿进行操作:

库(TIBLE)

谢谢大家的建议!我想我找到了一个更简单的解决办法。以防将来有人遇到类似问题,我就是这么做的:

a <- c(1,2,3)
b <- c("a","b")
c <- c(1L,3L,5L,4L)
d <- c(TRUE,FALSE,TRUE)
e <- list(b,c,d);e

DF <- data.frame(a,I(e));DF

a我认为这在你想要的意义上是不可能的<代码>数据。帧是等长向量的列表。你需要做/想做的是创建一个列表向量。据我所知,这是不可能的(见)一个不同的选择将是让每个元素都是一个字符,但只是一个粘贴在一起的列表将是什么样的建议银行版本!但如果我在我的示例中尝试它,它只会产生以下错误:
error:变量的长度必须为1或9。问题变量:“a”
library(tibble)

a <- c(1,2,3)
e <- list(b = as.list(c("a","b")),c = as.list(c(1L,3L,5L,4L)),d = as.list(c(TRUE,FALSE,TRUE)))

tibble(a,e)
# A tibble: 3 × 2
      a          e
  <dbl>     <list>
1     1 <list [2]>
2     2 <list [4]>
3     3 <list [3]>
a <- c(1,2,3)
b <- c("a","b")
c <- c(1L,3L,5L,4L)
d <- c(TRUE,FALSE,TRUE)
e <- list(b,c,d);e

DF <- data.frame(a,I(e));DF