首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将数据框中的列拆分到R中的列表

将数据框中的列拆分到R中的列表
EN

Stack Overflow用户
提问于 2018-04-03 04:28:34
回答 3查看 54关注 0票数 2

我希望将数据框中预定数量的列(包括所有行)转换为列表中的项(即,列表中的第一项将是包括原始df的列1-3的数据框,第二项将包括列4-6,第三项将包括列7-9等)。

有没有实现这一点的功能?

谢谢

EN

回答 3

Stack Overflow用户

发布于 2018-04-03 04:40:06

你可以循环3,6,..直到您的向量长度,并选择1:3,4:6,...具有lapply的列。类似的循环,但更快,更紧凑,并为您提供所需的输出。

代码语言:javascript
复制
lapply(3*(1:(ncol(df)%/%3)),function(x) df[,(x-2):x])
票数 2
EN

Stack Overflow用户

发布于 2018-04-03 04:41:32

结合使用lapply[,你可以得到你想要的:

代码语言:javascript
复制
df <- head(mtcars)[1:9]               # create a 9 column df
subdiv <- split(1:9,rep(1:3,each=3))  # splitting by 3, but you can put any subdivision in a list

lapply(subdiv,function(x,y) y[x],df)
# $`1`
# mpg cyl disp
# Mazda RX4         21.0   6  160
# Mazda RX4 Wag     21.0   6  160
# Datsun 710        22.8   4  108
# Hornet 4 Drive    21.4   6  258
# Hornet Sportabout 18.7   8  360
# Valiant           18.1   6  225
# 
# $`2`
# hp drat    wt
# Mazda RX4         110 3.90 2.620
# Mazda RX4 Wag     110 3.90 2.875
# Datsun 710         93 3.85 2.320
# Hornet 4 Drive    110 3.08 3.215
# Hornet Sportabout 175 3.15 3.440
# Valiant           105 2.76 3.460
# 
# $`3`
# qsec vs am
# Mazda RX4         16.46  0  1
# Mazda RX4 Wag     17.02  0  1
# Datsun 710        18.61  1  1
# Hornet 4 Drive    19.44  1  0
# Hornet Sportabout 17.02  0  0
# Valiant           20.22  1  0
票数 2
EN

Stack Overflow用户

发布于 2018-04-03 04:36:49

我不确定这是否准确地回答了你的问题,但如果你只是试图根据数字1:n来选择数据框中的列,那么下面的方法将会起作用。

代码语言:javascript
复制
List1 = dataframe[,1:3]
List2 = dataframe[,4:6]
List3 = dataframe[,7:9]

这将从您想要的每一列创建三个新的数据帧。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49618338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档