160796 16

[问答] 如何用R语言在数据中提取指定列数据,并且形成一个新的数据表 [推广有奖]

  • 0关注
  • 1粉丝

博士生

80%

还不是VIP/贵宾

-

威望
0
论坛币
842 个
通用积分
0.0004
学术水平
5 点
热心指数
5 点
信用等级
6 点
经验
5905 点
帖子
149
精华
0
在线时间
519 小时
注册时间
2012-10-15
最后登录
2024-5-19

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
举个例子,我R中导入了一个较大的行列数据,但是我只需要部分指定列,例如我只需要第1,3,5,7,9,11,13,15,17列(当然我需要的不仅仅这么多),并且将调出来的列数据重新生成一个行列数据表,该怎么写这个for循环,谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:R语言 数据表 如何用 for循环 For 数据表 如何

沙发
biohuang 发表于 2015-4-2 13:04:54 |只看作者 |坛友微信交流群
不需要for循环呀,一句话搞定:
  1. newdata <- olddata[,c(1,3,5,7,9,11,13,15,17)]
复制代码
已有 5 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
我的素质低 + 10 精彩帖子
xiaodata + 1 + 1 + 1 精彩帖子
Joyce娇 + 1 + 1 + 1 好的意见建议
李会超 + 20 热心帮助其他会员
admin_kefu + 10 热心帮助其他会员

总评分: 经验 + 30  论坛币 + 10  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

使用道具

biohuang 发表于 2015-4-2 13:04
不需要for循环呀,一句话搞定:
谢谢,我的意思是我要提取很多这样的列,不可能每一列都手动输进去,所以必须得用一个for循环

使用道具

板凳
06105007 发表于 2015-4-2 14:31:13 |只看作者 |坛友微信交流群
num<-seq(from=1,to=17,by=2)
data[,num]

使用道具

06105007 发表于 2015-4-2 14:31
num
谢谢,我的问题是简化了的,我主要想知道用for循环是怎么解决这类问题的

使用道具

地板
biohuang 发表于 2015-4-2 18:15:35 |只看作者 |坛友微信交流群
愤怒的小鸟! 发表于 2015-4-2 13:18
谢谢,我的意思是我要提取很多这样的列,不可能每一列都手动输进去,所以必须得用一个for循环
  1. newdata <- olddata[,icol]
复制代码
意思是这里面icol是变的?

这样:
  1. col.l <- list(1:5, 4:8, c(3,4,5))
  2. newdata <- list()
  3. for (icol in 1:3) {
  4.         newdata[[icol]] <- olddata[,col.l[[icol]]]
  5. }
复制代码
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
molicoolgirl + 1 + 1 + 1 + 1 精彩帖子
admin_kefu + 10 热心帮助其他会员

总评分: 论坛币 + 11  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

biohuang 发表于 2015-4-2 18:15
意思是这里面icol是变的?

这样:
谢谢,你写的代码好像跟我问的不符合,我的意思很简单,就是从现有数据框z中提取很多列(列是有规律的,符合2+4i,i<-1:262),如何写个for循环提取这样的列,然后再将这样提取出来的列形成一个新的数据框

使用道具

8
biohuang 发表于 2015-4-3 09:26:53 |只看作者 |坛友微信交流群
愤怒的小鸟! 发表于 2015-4-2 19:01
谢谢,你写的代码好像跟我问的不符合,我的意思很简单,就是从现有数据框z中提取很多列(列是有规律的,符 ...
前面有个兄弟说的这个不行吗?
  1. num<-seq(from=1,to=17,by=2)
  2. data[,num]
复制代码
照你的意思,这样行吗?
  1. newdata <- olddata[,2+4*1:262]
复制代码

使用道具

biohuang 发表于 2015-4-3 09:26
前面有个兄弟说的这个不行吗?照你的意思,这样行吗?
我主要想用for循环,下面的方法只能出现最后一列,前面的列都被后面的覆盖了,所以只出现了最走一列

使用道具

biohuang 发表于 2015-4-3 09:26
前面有个兄弟说的这个不行吗?照你的意思,这样行吗?
我主要想用for循环,下面的方法只能出现最后一列,前面的列都被后面的覆盖了,所以只出现了最走一列

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-22 07:27