R 根据条件将一列中的条目替换为另一列中的条目
我今天有一个稍微复杂的问题。我有一个数据框(df),有三列:R 根据条件将一列中的条目替换为另一列中的条目,r,replace,dataframe,R,Replace,Dataframe,我今天有一个稍微复杂的问题。我有一个数据框(df),有三列: ID Organization org 1 Company1 company1 2 Company1 company1 3 Company2 company2 4 Company2 company1 5 Company2 NA 6 Company3 company3
ID Organization org
1 Company1 company1
2 Company1 company1
3 Company2 company2
4 Company2 company1
5 Company2 NA
6 Company3 company3
7 Company3 demo
8 Company4 company4
我想创建一个名为“org_corrected”的新列,条件如下:
如果“组织”和“组织”中的条目相同,则“组织已更正”必须等于“组织”中的条目
如果“组织”和“组织”中的条目不相同,且“组织”不等于“演示”和“不适用”,则组织“必须有组织条目(第一个字母大写)”
预期产出:
ID Organization org org_corrected
1 Company1 company1 Company1
2 Company1 company1 Company1
3 Company2 company2 Company2
4 Company2 company1 Company1
5 Company2 NA Company2
6 Company3 company3 Company3
7 Company3 demo Company3
8 Company4 company4 Company4
我可以在excel中轻松完成这项工作,但我想在R中完成这项工作
提前感谢,你们总是能解决我的问题。我们可以使用
ifelse
df1$org_corrected <- with(df1,
ifelse(toupper(Organization)==toupper(org)|is.na(org)|org=='demo',
Organization, org))
我有一种感觉,你会是第一个回答并解决这个问题的人,非常感谢akrun。但我的问题是,这会处理大小写不匹配的情况吗,“org”是小写而“organization”是句子吗case@user3875610这时我碰巧登录了。@user3875610我注意到
组织
和组织
的第一个字母大小写不同。这是一个输入错误吗?@user3875610在这种情况下,我们可以转换为一个普通的情况,然后比较代码中添加的toupper
。我同意逻辑,但是,运行代码后,org_corrected用数字(1,2,3,10)填充
library(rapport)
df1$org_corrected <- tocamel(df1$org_corrected, upper=TRUE)