在 r 中重估具有多个条件的数据

revalue data with multiple conditions in r

我从dataframe中提取了一个vectordf 看起来像这样:

from  type
 23    U
 25    U
 30    S
 32    S
 50    T
 60    T

vector:

vec<-c("23","30","50")

现在我想在 df 中搜索由 vector 定义的值。 如果 df 中的值是 vector 的一部分,那么我想将 type 变量粘贴到 from 变量前面。

我试图用 dplyr::filter 查找 vector

df<-df %>% filter(from %in% vec && type=="U") %>% mutate(from=paste(type,from,sep=""))

现在我不知道如何进行,因为我的方法行不通。不确定 if-else 语句是否更合适。

预期结果是:

from  type
 U23   U
 25    U
 S30   S
 32    S
 T50   T
 60    T

提前致谢!

你可以这样做:

df %>% 
  mutate(from = ifelse(from %in% vec, paste0(type, from), from))

  from type
1  U23    U
2   25    U
3  S30    S
4   32    S
5  T50    T
6   60    T

数据:

df <- read.table(text = "
 from  type
 23    U
 25    U
 30    S
 32    S
 50    T
 60    T", h =T)


vec<-c("23","30","50")

你可以简单地做,

df$from[df$from %in% as.numeric(vec)] <- paste0(df$type[df$from %in% as.numeric(vec)], 
                                                df$from[df$from %in% as.numeric(vec)])