gpt4 book ai didi

r - R中for循环和ifelse的组合

转载 作者:行者123 更新时间:2023-12-02 19:01:28 25 4
gpt4 key购买 nike

如果超出特定(和变量)值,我试图在 R 中的"is"和“否”之间做出决定。对于每个测试的值,应创建一个包含不同决策的新列。

这是一个手动创建的例子:

Test.data <- data.frame(c(10, 20, 30, 40, 50, 60, 70, 80, 90, 100))
colnames(Test.data) <- c("Test")

Test.data$Test1 <- ifelse(Test.data$Test > 10, "Yes", "No")
Test.data$Test2 <- ifelse(Test.data$Test > 20, "Yes", "No")
Test.data$Test3 <- ifelse(Test.data$Test > 30, "Yes", "No")

Test.data

这个简单的例子给出了以下输出:

   Test Test1 Test2 Test3
1 10 No No No
2 20 Yes No No
3 30 Yes Yes No
4 40 Yes Yes Yes
5 50 Yes Yes Yes
6 60 Yes Yes Yes
7 70 Yes Yes Yes
8 80 Yes Yes Yes
9 90 Yes Yes Yes
10 100 Yes Yes Yes

有没有办法用 for 循环来做到这一点?我已经尝试过不同的东西,比如下面的代码,但这似乎是胡说八道,因为它不会创建新的列等等:

n = c(seq(from=10, to=100, by=10))

for(i in n) {
ifelse(Test.data$Test > i, "Yes", "No")
}

谢谢大家!

最佳答案

我们可以对 <- 的输出进行赋值( ifelse )到用 paste 创建的字符串对于列名。另外,不要循环遍历 n , 我们对 'n' 的序列进行循环

for(i in seq_along(n)) {
Test.data[paste0("Test", i)] <- ifelse(Test.data$Test > n[i], "Yes", "No")
}

关于r - R中for循环和ifelse的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65514871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com