简体   繁体   English

如果另一列中的值在列表中,则更改一列中的值 [R]

[英]Change value in one column if a value in another is in a list [R]

Hello I have a df such as:您好,我有一个 df,例如:

COL1 COL2
A 1
B 2
C 3
D 4
E 5
F 6

List<-c("A","C")

and if a COL1 value is in List , then add "OK" into the COL2如果COL1值在List中,则将“OK”添加到COL2

I should then get:然后我应该得到:

COL1 COL2
A OK
B 2
C OK
D 4
E 5
F 6

Here are the data这是数据

structure(list(COL1 = structure(1:6, .Label = c("A", "B", "C", 
"D", "E", "F"), class = "factor"), COL2 = 1:6), class = "data.frame", row.names = c(NA, 
-6L))

You can use %in% + replace like below您可以使用%in% + replace如下

transform(
  df,
  COL2 = replace(COL2, COL1 %in% List, "OK")
)

which gives这使

  COL1 COL2
1    A   OK
2    B    2
3    C   OK
4    D    4
5    E    5
6    F    6

A dplyr option一个dplyr选项

> df %>%
+   mutate_at("COL2", ~ replace(., COL1 %in% List, "OK"))
  COL1 COL2
1    A   OK
2    B    2
3    C   OK
4    D    4
5    E    5
6    F    6

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM