我有一个包含两列的数据框。
C1 C2
A T
T T
T G
TTG T
G GTGA
AAT A
我想浏览数据集,如果其值的长度小于C2则将列C1转换为“D”,如果长度大于C2则转换为“I”
期望的输出:
C1 C2
A T
T T
T G
I T
D GTGA
I A
答案 0 :(得分:3)
我们可以使用case_when
来执行此操作
library(dplyr)
df1 %>%
mutate(C1 = case_when(nchar(C1) < nchar(C2) ~ 'D',
nchar(C1) > nchar(C2) ~ 'I',
TRUE ~ C1))
# C1 C2
#1 A T
#2 T T
#3 T G
#4 I T
#5 D GTGA
#6 I A