[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
代码储存在复数字段中,希望检查是否有某些字段符合特定字串规则,输出True or False
目前用 dplyr::filter_at 是可以得到需要的结果
但需要另外产生一个data.frame再join回来
且要检查多组不同字串规则时变得更为冗长
想问看看有没有更好的写法
ex:
ID 代码一 代码二 ... 代码N
1 O33 O34 O354
2 O331 O354
3 OO33 O345
需要的结果
ID 代码一 代码二 ... 代码N O33开头 O34开头 ...
1 O33 O34 O354 True True
2 O331 O354 True False
3 OO33 O345 False True
[程式范例]:
df <- read.csv( ...... )
require(dplyr)
dftemp <- filter_at(df, vars(starts_with("代码")), any_vars(grepl("^O33", .)))
dftemp$O33开头 <- True
df <- left_join(df, dftemp )
df$O33开头 <- ifelse( is.na(df$O33开头), False, True)
然后为 "O34开头" 再做一次...