【发布时间】:2017-07-09 09:34:57
【问题描述】:
我遇到了一些我必须在我的数据框中更改的字符串的问题。我的 df 结构如下:
df <- data.frame(Name = c("a2b", "a1a", "b2a", "a2b", "b1b", "b2a"),
Side = c("L", "R", "R", "L", "R", "L"))
Name Side
1 a2b L
2 a1a R
3 b2a R
4 a2b L
5 b1b R
6 b2a L
我想要做的是仅当“名称”值中有“2”时才将“侧”列中的值替换为相反的值(使值为“1”的行保持不变)。 “Side”列只有“R”和“L”作为可能的值。所以这是我想要得到的输出:
Name Side
1 a2b R
2 a1a R
3 b2a L
4 a2b R
5 b1b R
6 b2a R
我尝试了很多解决方案,但我才刚刚开始使用 R,所以我还不知道“if”语句是如何工作的。有什么办法吗?
【问题讨论】:
-
能否请您展示一下到目前为止您尝试过的内容。
-
我设法根据名称列中的数字进行细分,但我所能做的就是用某些东西替换 all 值,而不是用类似的东西交换值:
mutate(Side = ifelse(grepl("2", Name), "newValue"))。我也试着把它写成一个“if”语句,但我真的不知道如何处理它们......
标签: r if-statement dataframe