根据条件将一列中的条目替换为另一列

时间:2015-11-17 04:17:53

标签: 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
   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中执行此操作。

先谢谢,你们/女孩们总能解决我的问题。

1 个答案:

答案 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)