楼主: 苦丁冰茶
38421 9

[问答] R 列数据相加 [推广有奖]

  • 35关注
  • 2粉丝

已卖:804份资源

教授

28%

还不是VIP/贵宾

-

威望
0
论坛币
48049 个
通用积分
4.1295
学术水平
12 点
热心指数
4 点
信用等级
2 点
经验
37970 点
帖子
654
精华
0
在线时间
1436 小时
注册时间
2010-9-23
最后登录
2024-2-4

楼主
苦丁冰茶 在职认证  学生认证  发表于 2017-3-8 16:26:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教大家一个问题,数据框data有n列数据(k1,k2,...,kn),如果将其中的某几列数据加总,并生成新的一列数据k(n+1),在R中如何实现?行不变。例如, t.png ,现在希望将k1,k4和k5列数据加总,并生产新的一列(k7), nt.png 使得k7的第1行等于k1,k4,k5第1 行数据之和,k7的第2行等于k1,k4,k5第2行数据之和...如何实现?谢谢
二维码

扫码加我 拉你入群

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

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

关键词:请教大家一个问题 如何实现 Data 数据框

沙发
colinxf 学生认证  发表于 2017-3-8 17:25:04
是data.frame的格式,可以写成:
  1. k7<-data$k1+data$k4+data$5
  2. data<-cbind(data,k7)
复制代码

已有 2 人评分经验 热心指数 收起 理由
李会超 + 20 热心帮助其他会员
求证1加1 + 1 热心帮助其他会员

总评分: 经验 + 20  热心指数 + 1   查看全部评分

藤椅
苦丁冰茶 在职认证  学生认证  发表于 2017-3-8 18:33:55
colinxf 发表于 2017-3-8 17:25
是data.frame的格式,可以写成:
谢谢您的及时解答!刚才试了一下,您给的方法基本是可行的,不过对于有缺失值的数据好像需要调整一下。在您给的方法中,好像还得定义一下na.rm=T,但我不知道这个定义加在哪个地方。我刚尝试用了另一个方法,apply函数,data$k7<-apply(data[,c(1,4,5),1,sum,na.rm=T),这样就可以把缺失值问题解决了。
再次感谢您的及时解答!
已有 1 人评分经验 收起 理由
求证1加1 + 20 鼓励积极发帖讨论

总评分: 经验 + 20   查看全部评分

板凳
colinxf 学生认证  发表于 2017-3-9 13:27:36
嗯,是的。apply一类的函数(lapply,sapply, vapply)在对数据(data.frame, list)进行批量处理的时候挺好用的

报纸
杨乃权 发表于 2017-3-9 18:29:51
苦丁冰茶 发表于 2017-3-8 18:33
谢谢您的及时解答!刚才试了一下,您给的方法基本是可行的,不过对于有缺失值的数据好像需要调整一下。在 ...
其中的参数错了,1在矩阵或数据框中表示的是行,2才是表示列

地板
swyggq 发表于 2017-3-9 19:30:49
> a=list(k1=1:5,k2=2:6,k3=3:7)
> a=data.frame(k1=1:5,k2=2:6,k3=3:7)
> a
  k1 k2 k3
1  1  2  3
2  2  3  4
3  3  4  5
4  4  5  6
5  5  6  7
> a(论坛打美元符号会出错)k4=a(论坛打美元符号会出错)k1+a(论坛打美元符号会出错)k2
> a
  k1 k2 k3 k4
1  1  2  3  3
2  2  3  4  5
3  3  4  5  7
4  4  5  6  9
5  5  6  7 11
>

7
苦丁冰茶 在职认证  学生认证  发表于 2017-3-10 00:04:03
swyggq 发表于 2017-3-9 19:30
> a=list(k1=1:5,k2=2:6,k3=3:7)
> a=data.frame(k1=1:5,k2=2:6,k3=3:7)
> a
谢谢您的解答!但如果有缺失值得话,好像会出错,这种情况如何处理?

8
苦丁冰茶 在职认证  学生认证  发表于 2017-3-10 00:06:05
杨乃权 发表于 2017-3-9 18:29
其中的参数错了,1在矩阵或数据框中表示的是行,2才是表示列
谢谢您的问题。不过,1表示按行相加吧,应该是1而不是2。我用的是1,结果是正确的。您再试一下,看看结果如何?

9
杨乃权 发表于 2017-3-10 11:31:29 来自手机
苦丁冰茶 发表于 2017-3-10 00:06
谢谢您的问题。不过,1表示按行相加吧,应该是1而不是2。我用的是1,结果是正确的。您再试一下,看看结果 ...
是我看错题了,您的过程没错

10
swyggq 发表于 2017-3-24 20:27:47
苦丁冰茶 发表于 2017-3-10 00:04
谢谢您的解答!但如果有缺失值得话,好像会出错,这种情况如何处理?
直接加就好了啊……

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-31 09:53