【发布时间】:2014-08-07 19:07:36
【问题描述】:
有人可以解释为什么我的 else 部分功能不起作用吗?
最终结果;
Duplicate Digit6 Digit7 Digit7a Digit7b Digit7c Digit7d Dead carried
137401 137401 2017681 2017681 2018047 2018047 2018219 1 0
137402 137402 2017731 2017731 2017856 2017856 2018279 0 0
w <- function(finaltable){
if (nchar(tail(names(finaltable),1) >= nchar(c("carried")))) {(ncol(finaltable)-2)
} else (ncol(finaltable)-1)
}
我有列名(重复、数字、死亡、携带)。我想要最后一位数字列。根据我将有tail(names(finaltable),1 =携带或死亡的日子。如果携带,我需要减去两列,如果死亡则减去一列。但是,我有几列命名为死亡或携带与相关联数字。但是,最大死数是 dead99。因此我最多有 6 个字符。
然后我想将我的函数转储到下面。
SubtractROW<-finaltable[paste(ROWS), w(finaltable)];
BarCODEtable<-cbind(ILS,ROWS,SubtractROW);
BarCODEtable;
【问题讨论】:
-
如果要查找列名中包含“数字”的最后一列,可以使用
max(which(grepl("^Digit", names(finaltable))))而不是 if else。 -
@beginneR,这是什么意思? “^数字”?
-
@另外,你能解释一下我的函数有什么问题吗?
-
也就是说,检查列名是否以“数字”开头(^用来表示应该在开头找到字符串)。
-
您的功能似乎运行良好。当我运行它时,它返回 7 - 这对于示例数据是正确的。
标签: r if-statement