1733 4

[问答] 某列空值替换为同行其他列的值 [推广有奖]

  • 0关注
  • 0粉丝

高中生

70%

还不是VIP/贵宾

-

威望
0
论坛币
1007 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
198 点
帖子
11
精华
0
在线时间
47 小时
注册时间
2019-3-19
最后登录
2024-1-9

楼主
迪彤的夏天1 发表于 2020-6-29 18:16:56 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
1593424470(1).jpg
如图,如何新增一列,放同行不同列非空的值(这3列是互补的),求大佬能给答疑解惑!
二维码

扫码加我 拉你入群

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

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


沙发
megapanda 发表于 2020-6-29 19:26:53
可以把所有NA改成0,然后三列加起来就好了

比如设你原来的data frame 是x
  1. # 不改变原数据集,用一个新变量来做
  2. y <- x[这三列]
  3. y[is.na(y)] <- 0
  4. rowSums(y) # 目标列
复制代码
已有 2 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员
llb_321 + 5 精彩帖子

总评分: 论坛币 + 15   查看全部评分

藤椅
nieqiang110 学生认证  发表于 2020-6-30 09:12:21
搞个复杂版的
data%>%
  dplyr::mutate(var4=ifelse(is.na(var1)&is.na(var2),var3,0),
                var4=ifelse(is.na(var1)&is.na(var3),var2,0),
                var4=ifelse(is.na(var2)&is.na(var3),var1,0)) ->data
#or  
data %>% mutate(id=1:length(var1))->data
data %>% filter(!is.na(var1)) %>% mutate(var4=var1) %>% select(id,var4)->var41
data %>% filter(!is.na(var2)) %>% mutate(var4=var2) %>% select(id,var4)->var42
data %>% filter(!is.na(var3)) %>% mutate(var4=var3) %>% select(id,var4)->var43
var41 %>% left_join(var42) %>% left_join(var43)->data_F
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

板凳
迪彤的夏天1 发表于 2020-6-30 09:13:20
megapanda 发表于 2020-6-29 19:26
可以把所有NA改成0,然后三列加起来就好了

比如设你原来的data frame 是x
我的天,优秀,聪明!

报纸
迪彤的夏天1 发表于 2020-6-30 09:13:52
nieqiang110 发表于 2020-6-30 09:12
搞个复杂版的
data%>%
  dplyr::mutate(var4=ifelse(is.na(var1)&is.na(var2),var3,0),
大佬大佬!感谢感谢!问题完美的解决了

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-24 09:01