r - 将数据帧转换为 LIST

标签 r list dataframe

我希望将数据框转换为列表。这是一个示例数据框:

colname   name    age    address
1         John    22     Singapore
2         James   44     India
3         Jessie  21     Australia 

我想将其转换为如下列表:
Name : John Age: 22 Address: Singapore
Name : James Age: 44 Address India
Name : Jessie Age: 21 Address: Australia.

所以基本上我希望在单个 R 数据类型中获得列名和行的相应值的聚合。
as.list对我不起作用。

最佳答案

你可以简单地使用:

 apply(X, 1, function(r) paste(names(X), r, sep=":", collapse=" "))

哪里X是您的 data.frame
如果您不需要输出中的第一列,请添加适当的 [, -1][-1]分别:
apply(X[, -1], 1, function(r) paste(names(X)[-1], r, sep=":", collapse=" "))

[1] "name:John age:22 address:Singapore"  
[2] "name:James age:44 address:India"     
[3] "name:Jessie age:21 address:Australia"

但是,如果您的目标是将其转换为 JSON,则可以使用 rjson包裹:
library(rjson)
apply(X[,-1], 1, toJSON)

这会给你一个适当引用的字符串:
cat( apply(X[,-1], 1, toJSON) )

{"name":"John","age":"22","address":"Singapore"} 
{"name":"James","age":"44","address":"India"}
{"name":"Jessie","age":"21","address":"Australia"}

关于r - 将数据帧转换为 LIST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16538364/

相关文章:

python - 合并数据框的两列,然后进行比较

r - 使用 purrr::cross_n 进行笛卡尔乘积过滤

r - 我可以在 R 中添加到现有的惰性数据库而不必重新创建所有内容吗?

list - 删除项目后刷新列表 - Flutter

python - 在 python 中重新定位子列表的最快方法

python - 比较两个系列时,如何根据一个系列进行过滤?

python-3.x - 按行和列将 Pandas Dataframe 的元素重新组织为新的 dataframe

r - 在传单簇选项中定义函数

r - 如何在 R 中保存有很多点的 pdf

python - 在Python中的循环中向后和向前查看