R 如果列表中有值,则替换字段值

R 如果列表中有值,则替换字段值,r,dataframe,R,Dataframe,这不是一个大问题,但让我很恼火 在R中,我根据另一列的值更改一列中字段的值: my_df[my_df$column1 == "ONE", 'column2'] <- "My text" my_df[my_df$column1 == "TWO", 'column2'] <- "My text" my_-df[my_-df$column1==“一”,column2']是的,有办法做到这一点 问题是“==”运算符 您需要改为在%中使用“%” 也就是说,您不想询问第1列中的值是否等于c(“

这不是一个大问题,但让我很恼火

在R中,我根据另一列的值更改一列中字段的值:

my_df[my_df$column1 == "ONE", 'column2'] <- "My text"
my_df[my_df$column1 == "TWO", 'column2'] <- "My text"

my_-df[my_-df$column1==“一”,column2']是的,有办法做到这一点

问题是“
==
”运算符

您需要改为在%
中使用“
%”

也就是说,您不想询问第1列中的值是否等于
c(“一”、“二”)
您想询问第1列中的值是否在向量
c(“一”、“二”)

以你为例:

my_df[my_df$column1 %in% c("ONE", "TWO"), 'column2'] <- "My text"

my_-df[my_-df$column1%在%c(“一”、“二”),“column2”]是的,有一种方法可以做到这一点

问题是“
==
”运算符

您需要改为在%
中使用“
%”

也就是说,您不想询问第1列中的值是否等于
c(“一”、“二”)
您想询问第1列中的值是否在向量
c(“一”、“二”)

以你为例:

my_df[my_df$column1 %in% c("ONE", "TWO"), 'column2'] <- "My text"
my_-df[my_-df$column1%在%c(“一”、“两”),“column2”]dplyr解决方案(假设column2已经存在):

#示例df
我的_df%
突变(第2列=替换(第1列,
第1栏%c(“一”、“二”),
“我的文本”))
dplyr解决方案(假设第2列已经存在):

#示例df
我的_df%
突变(第2列=替换(第1列,
第1栏%c(“一”、“二”),
“我的文本”))

你的意思是
我的df$column1%在%c(“一”、“二”),'column2']
我的df$column1==c(“一”、“二”)
应该是
我的df$column1%在%c(“一”、“二”)
你的意思是
我的df$column1%在%c(“一”、“二”),'column2'
我的df$column1==c(“一”、“二”)
应该是
# sample df
my_df <- tibble(column1 = c("ONE", "TWO", "THREE"),
                column2 = c("a", "b", "c"))

# code
my_df %>% 
  mutate(column2 = replace(column1,
                           column1 %in% c("ONE", "TWO"), 
                           "My text"))