R 使用ifelse将向量作为新列插入
我想使用if语句从向量创建一个新列。但是,结果仅输入向量沿列向下的第一个值。有没有办法把向量放进去?我试过c和as字符。 非常感谢任何帮助R 使用ifelse将向量作为新列插入,r,if-statement,R,If Statement,我想使用if语句从向量创建一个新列。但是,结果仅输入向量沿列向下的第一个值。有没有办法把向量放进去?我试过c和as字符。 非常感谢任何帮助 data <- data.frame(n = seq(1:21)) ladder1 <- c(50, 75, 100, 125, 150, 200, 250, 300, 350, 400, 450, 475, 500, 550, 600, 650, 700, 750, 800, 850, 900, 950, 1000) ladder2 <-
data <- data.frame(n = seq(1:21))
ladder1 <- c(50, 75, 100, 125, 150, 200, 250, 300, 350, 400, 450, 475, 500, 550, 600, 650, 700, 750, 800, 850, 900, 950, 1000)
ladder2 <- c(50, 75, 100, 200, 250, 300, 350, 400, 450, 475, 500, 550, 600, 650, 700, 750, 800, 850, 900, 950, 1000)
data$ladder <- ifelse(nrow(data) == 23, ladder1,
ifelse(nrow(data) == 21, ladder2))
ifelse输出与您正在测试的变量长度相同的向量,该变量的长度为1,此处nrowdata==23,因此它只输出在整个列中循环使用的第一个变量
改用if/else:
data$ladder <- if(nrow(data) == 23) ladder1 else if(nrow(data) == 21) ladder2
ifelse输出与您正在测试的变量长度相同的向量,该变量的长度为1,此处nrowdata==23,因此它只输出在整个列中循环使用的第一个变量
改用if/else:
data$ladder <- if(nrow(data) == 23) ladder1 else if(nrow(data) == 21) ladder2
因为您只是在两种情况之间切换,所以也可以使用switch: 甚至:
data$ladder <- get(c("ladder1", "ladder2")[c(23, 21) %in% nrow(data)])
因为您只是在两种情况之间切换,所以也可以使用switch: 甚至:
data$ladder <- get(c("ladder1", "ladder2")[c(23, 21) %in% nrow(data)])
太好了,谢谢,太好了太好了,谢谢,太好了