在 r 中重估具有多个条件的数据
revalue data with multiple conditions in r
我从dataframe
中提取了一个vector
。
df
看起来像这样:
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)])
我从dataframe
中提取了一个vector
。
df
看起来像这样:
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)])