我今天有一个稍微复杂的问题。我有一个包含三列的数据框(df):
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"的新列。具有以下条件:
如果进入"组织"和" org"然后是" org_corrected"必须等于"组织"
如果进入"组织"和" org"是不一样的" org"不等于"演示"和" NA"然后org_corrected"必须有org的输入(首字母大写")
预期产出:
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中执行此操作。
先谢谢,你们/女孩们总能解决我的问题。
答案 0 :(得分:1)
我们可以使用ifelse
df1$org_corrected <- with(df1,
ifelse(toupper(Organization)==toupper(org)|is.na(org)|org=='demo',
Organization, org))
如果我们需要更改某些条目的案例&org_corrected to
camelcase`(即来自&#39; org&#39;)
library(rapport)
df1$org_corrected <- tocamel(df1$org_corrected, upper=TRUE)