Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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,我希望将数据帧转换为列表。下面是一个数据帧示例: 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包。如果一个不起作用,点击谷歌试试另一个