我需要添加一个列NumCap,它是Cap1-Cap6中出现'yes‘的次数,使用一个'for’循环。以下是34个观察结果中的前5个。
(在SAS中,我创建了一个Cap1-Cap6数组,如果Cap(i)='yes‘,则应用NumCap +1。我对这两个都是新手,但在r中做这件事比较困难)。
Sex AgeGroup Weight Cap1 Cap2 Cap3 Cap4 Cap5 Cap6 NumCap
1 male young 12 yes yes yes yes yes yes
2 female young 15 yes no no yes yes yes
3 male young 15 yes yes no no yes yes
4 male young 15 yes yes no yes yes yes
5 male young 13 yes yes yes yes yes yes发布于 2018-10-09 04:46:22
我们可以使用rowSums来创建"NumCap“。使用grep设置dataset的列子集,将其转换为逻辑matrix (==),并获取每行中TRUE的总和(rowSums)
df$NumCap <- rowSums(df[grep("^Cap\\d+", names(df))] == "yes")https://stackoverflow.com/questions/52709853
复制相似问题