R 将数据帧转换为列表
我希望将数据帧转换为列表。下面是一个数据帧示例:R 将数据帧转换为列表,r,list,dataframe,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 Na
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"}
你想把它转换成JSON吗?
lappy(split(X,rownames(X)),as.list)
?嘿,里卡多,谢谢你的快速回复。基本上,我尝试在mongodb中插入一个数据帧,但我使用的rmongodb包希望传递list或类似bson的对象。示例:mongo.insert(mongo,“集合名称”,列表\b基于对象)我对R和mongo都是新手,如果我的疑问太简单,我深表歉意。没问题rjson
应该为您提供mongo可以访问的输出。另外,你看过了吗,这就是你现在正在使用的吗?没有,我正在使用软件包。我必须将其转换为列表,然后尝试使用软件包中的函数将列表转换为BSON对象。但到目前为止,我对list的理解是,当您使用as.list函数将dataframe转换为list时,您得到的是基于列而非行的元素列表,请纠正我的错误。此外,至少有三个mongo/R包。如果一个不起作用,点击谷歌试试另一个