r - 在向量列表中,将每个向量转换为字符串,然后转换为 R 中的数据帧
问题描述
我有一个向量列表 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
函数与collapse
of 的参数一起paste
应该将其全部包装到 a 中data.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
对的每个元素sapply
应用paste
-functionlist
以创建串联列表元素的字符向量。构造函数只是将该data.frame
输出转换为想要的输出。
推荐阅读
- android - 如何修复 RuntimeException 和 NullPointerException?
- graphql - graphql / strapi:为什么获取具有大型 json 对象的模型的 id 需要这么长时间?
- azure-devops - Azure DevOps 查询所有过去的迭代
- apache - 自动允许加密通配符子域的 SSL 证书
- listview - Flutter - 如何在删除元素后维护 ExpansionTiles 列表的 _isExpanded 状态?
- c# - 如何限制 transform.Rotate(float,0,0)?
- visual-studio - 从 Visual Studio 发布 Azure Web App 不会更新网站
- python - 字符串上的Python For循环没有打印任何结果
- node.js - 从 node.js 和 Typescript 中的动态文件名加载 JSON 的最佳方法是什么?
- java - 在Java中解析到OffsetDateTime的字符串