R 如果字符串向量等于多个字符串向量中的元素,则创建等于一的伪值
在R中,如果一个字符串向量[61,1]b中的元素与3个[1,1]字符串向量c1、c2、c3中的元素匹配,我想将[61,1]伪向量a设置为1 我试过这样的方法:R 如果字符串向量等于多个字符串向量中的元素,则创建等于一的伪值,r,R,在R中,如果一个字符串向量[61,1]b中的元素与3个[1,1]字符串向量c1、c2、c3中的元素匹配,我想将[61,1]伪向量a设置为1 我试过这样的方法: for(i in 1:3) { data$a[data$b==data2$ci]<-1 } 我希望“a”看起来像: a 1 1 0 1 1 ... 0 编辑: 此代码适用于: data$a <- ifelse(data$b %in% data2$p1, 1, if
for(i in 1:3) {
data$a[data$b==data2$ci]<-1
}
我希望“a”看起来像:
a 1 1 0 1 1 ... 0
编辑:
此代码适用于:
data$a <- ifelse(data$b %in% data2$p1, 1,
ifelse(data$b %in% data2$p2, 1,
ifelse(data$b %in% data2$p3, 1, 0)))
data$a如果我正确理解了这个问题,最简单的方法就是使用ifelse语句。请在下一个问题中添加一个可复制的示例,以使那些试图为您提供解决方案的人更容易理解
Data <- data.frame(a = 0,
b = c("M", "M", "D", "M", "X", "P"),
stringsAsFactors = FALSE)
Data2 <- data.frame(a = c("c1", "c2", "c3"),
b = c("M", "X", "P"),
stringsAsFactors = FALSE)
Data$a <- ifelse(Data$b %in% Data2$b, 1, 0)
数据