r - 在向量列表中,将每个向量转换为字符串,然后转换为 R 中的数据帧

标签 r list dataframe vector

我有一个向量列表 j,如下所示:

>j
[[1]
[1] "a" "b" "c"

[[2]]
[1] "c" "c" 

[[3]]
[1] "d" "d" "d" "a" "a" 
.
. 
. 

我想将其转换为一个数据帧,其中有一列,每个向量内容连接在一起。所以该列看起来像:

  Column_Name
1       a b c 
2         c c 
3   d d d a a 

我尝试使用 Replace() 函数以及循环,我将在之后使用:

for (x in 1:length(j)){ 
  j[x] = paste(j[x], collapse = " ")
}

 j <- data.frame(matrix(unlist(j), nrow=length(j), byrow=T)

任何指导将不胜感激。 谢谢。

最佳答案

正如您自己尝试过的那样,sapply 函数与 pastecollapse 参数一起应该将其全部包装到 中数据.frame:

# Toy data
set.seed(1)
j <- replicate(5, rep(sample(letters, 1), sample(1:10,1)))
print(j)
#[[1]]
#[1] "g" "g" "g" "g"
#
#[[2]]
# [1] "o" "o" "o" "o" "o" "o" "o" "o" "o" "o"
#
#[[3]]
#[1] "f" "f" "f" "f" "f" "f" "f" "f" "f"
#
#[[4]]
#[1] "y" "y" "y" "y" "y" "y" "y"
#
#[[5]]
#[1] "q"

# Collapse each element and wrap into a data.frame
res <- data.frame("Column_name" = sapply(j, paste, collapse = " "))
print(res)
#          Column_name
#1             g g g g
#2 o o o o o o o o o o
#3   f f f f f f f f f
#4       y y y y y y y
#5                   q

sapplylist 的每个元素应用 paste 函数,以创建串联列表元素的字符向量。 data.frame 构造函数只是将该输出转换为所需的输出。

关于r - 在向量列表中,将每个向量转换为字符串,然后转换为 R 中的数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50866077/

相关文章:

Python - 如何减少列表并保留值?

c# - 我的问题是关于使用 C# linq 比较 List<string> 与 Dictionary <string, List<string>>

python - 数据框按一列分组并平均一列,同时查找另一列中出现最多的情况

使用正则表达式用四舍五入的数字替换字符串中的数字

r - 如何按定义的顺序将图像合并到一个文件中

r - 在列R中查找最小非零值

如果项目不包含在列表中,Python 列表理解

python - 在 Python 中将小时和分钟转换为总分钟

python - pandas 操作是否与 groupby 互补(相反)?

r - big64 - NA 向量上的 sum() 产生奇怪的结果