【发布时间】:2015-07-26 11:06:07
【问题描述】:
我正在尝试跨两列进行简单的字符串比较。 (模拟)数据样本:
EMPLID,From_DeptCode,FromDept,To_DeptCode,To_Dept,TransactionTypeCode,TransactionType,EffectiveDate,ChangeType
0239583290,21,Sales,43,CustomerService,10,Promotion,12/12/2012
1230495829,21,Sales,21,Sales,10,Promotion,9/1/2013
4059503918,93,Operations,93,Operations,10,Demotion,11/18/2014
3040593021,19,Headquarters,23,International,11,Reorg,12/13/2011
7029406920,15,Marketing,84,Development,19,Reassignment,01/05/2010
2039052819,19,Headquarters,19,Headquarters,10,Promotion,4/15/2015
我要使用的逻辑是:
If From_DeptCode = To_DeptCode
then ChangeType="No Change"
ElseIf From_DeptCode != To_DeptCode AND TransactionType = "Reorg"
then ChangeType="Reorg"
Else ChangeType="Transfer"
所以我的输出看起来像:
EMPLID,From_DeptCode,FromDept,To_DeptCode,To_Dept,TransactionTypeCode,TransactionType,EffectiveDate,ChangeType
0239583290,21,Sales,43,CustomerService,10,Promotion,12/12/2012,Transfer
1230495829,21,Sales,21,Sales,10,Promotion,9/1/2013,No Change
4059503918,93,Operations,93,Operations,10,Demotion,11/18/2014,No Change
3040593021,19,Headquarters,23,International,11,Reorg,12/13/2011,Reorg
7029406920,15,Marketing,84,Development,19,Reassignment,01/05/2010,Transfer
2039052819,19,Headquarters,19,Headquarters,10,Promotion,4/15/2015,No Change
这是我目前所知道的:
transfers <- read.csv(file="Transfers.csv", head=TRUE,
sep=",",colClasses=c(NA,NA,NA,NA,NA,NA,NA,"Date",NA))
在这一点上,我假设,我会实现我的逻辑:
If From_DeptCode = To_DeptCode
then ChangeType="No Change"
ElseIf From_DeptCode != To_DeptCode AND TransactionType = "Reorg"
then ChangeType="Reorg"
Else ChangeType="Transfer"
我假设我会在这里写出我的新 csv write.csv(transfers, file = "transfersprocessed.csv", row.names = FALSE)
有什么建议可以继续前进吗?
更新:
根据@josilber 的回答,我运行了以下代码:
transfers <- read.csv(file="Transfers.csv", head=TRUE, sep=",", colClasses=c(NA,NA,NA,NA,NA,NA,NA,"Date",NA))
dat$ChangeType <- ifelse(dat$From_DeptCode == dat$To_DeptCode, "No Change",ifelse(dat$TransactionType == "Reorg", "Reorg", "Transfer"))
View(transfers)
关于以下数据:
EMPLID,From_DeptCode,FromDept,To_DeptCode,To_Dept,TransactionTypeCode,TransactionType,EffectiveDate,ChangeType
0239583290,21,Sales,43,CustomerService,10,Promotion,12/12/2012
1230495829,21,Sales,21,Sales,10,Promotion,9/1/2013
4059503918,93,Operations,93,Operations,10,Demotion,11/18/2014
3040593021,19,Headquarters,23,International,11,Reorg,12/13/2011
7029406920,15,Marketing,84,Development,19,Reassignment,01/05/2010
2039052819,19,Headquarters,19,Headquarters,10,Promotion,4/15/2015
ChangeType 变量仍然是“NA”。
嵌套的 ifelse 语句语法是否正确?知道为什么 ChangeType 不起作用吗?
【问题讨论】:
标签: r csv string-comparison