Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.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
将dataframe转换为未命名列表_R_List_Dataframe - Fatal编程技术网

将dataframe转换为未命名列表

将dataframe转换为未命名列表,r,list,dataframe,R,List,Dataframe,我有一个像这样的数据帧df A B C D 1 78 12 43 12 2 23 12 42 13 3 14 42 11 99 4 49 94 27 72 我需要将前两列转换为如下所示的列表: [[1]] [1] 78 12 [[2]] [1] 23 12 [[3]] [1] 14 42 [[4]] [1] 49 94 基本上什么 list(c(78, 12), c(

我有一个像这样的数据帧
df

    A     B     C     D
1   78    12    43    12
2   23    12    42    13
3   14    42    11    99
4   49    94    27    72
我需要将前两列转换为如下所示的列表:

[[1]]
[1] 78 12

[[2]]
[1] 23 12

[[3]]
[1] 14 42

[[4]]
[1] 49 94
基本上什么

list(c(78, 12), c(23, 12), c(14, 42), c(49, 94)
可以。我试过这个

lapply(as.list(1:dim(df)[1]), function(x) df[x[1],])
以及

lapply(as.list(1:nrow(df)), function(x) df)
但这有点不同。
有什么建议吗?

你可以试试
地图

Map(c, df$A, df$B)
[[1]]
[1] 78 12

[[2]]
[1] 23 12

[[3]]
[1] 14 42

[[4]]
[1] 49 94

如果对此感兴趣,可以使用
foreach
软件包实现这一点:

library(foreach)
foreach(i=seq.int(nrow(df))) %do% (c(df[[i]][1], df[[i]][2]))
默认情况下,
foreach
返回一个列表。代码沿行向下运行,并从第一列和第二列中提取元素

更清晰的阅读版本:

foreach(i=seq.int(nrow(df))) %do% (df[[i]][1:2])

另一个选项是使用
lappy

lapply(seq_len(nrow(df1)), function(i) unlist(df1[i, 1:2], use.names=FALSE))
#[[1]]
#[1] 78 12

#[[2]]
#[1] 23 12

#[[3]]
#[1] 14 42

#[[4]]
#[1] 49 94

如果结果列表中没有名字,你会有多迂腐?e、 g.
split(df[,1:2],seq_len(nrow(df))
@joran very。我需要的和我描述的一模一样。
list()
会对各种向量做什么……可能有一种更干净的方法:
如果我把它拿回来,你可以做
mapply(c,df$a,df$B,SIMPLIFY=FALSE)
如果你真的不能得到这些名称。@stopface-Huh?双打和什么有什么关系?