我有一个包含两列的类型列表数据集。我想编写一个命令,它将创建第三列,其中包含与第二列所需字符串相对应的值。第二列中所需的字符串是" notGene"。所以如果" notGene"出现在第二列中,我希望第一列中的相应值出现在新生成的第三列中。
答案 0 :(得分:0)
我猜你正在寻找这样的东西:
data <- list(col1 = c("one", "two", "three"),
col2 = c("hello", "contains notGene as text", "world"))
data$col3 = ifelse(grepl("notGene", data$col2, fixed = TRUE),
data$col1, NA_character_)
导致
> data
$col1
[1] "one" "two" "three"
$col2
[1] "hello" "contains notGene as text"
[3] "world"
$col3
[1] NA "two" NA
或更好的格式:
> as.data.frame(data)
col1 col2 col3
1 one hello <NA>
2 two contains notGene as text two
3 three world <NA>