gpt4 book ai didi

r - 如何根据条件在 data.frame 中创建新变量?

转载 作者:行者123 更新时间:2023-12-03 20:15:21 25 4
gpt4 key购买 nike

假设我们有一个数据框

x   y
1 1
2 4
4 5

如何向数据帧添加新变量,以便如果 x 小于或等于 1,则返回“好”,如果 x 介于 3 和 5 之间,则返回“坏”,否则返回“公平”
x   y  w
1 1 "good"
2 2 "fair"
5 5 "bad"

应用了 ocram. 所示的方法,但是这里的这个方法不起作用。
d1 <- c("e", "c", "a")
d2 <- c("e", "a", "b")

w <- ifelse(d1 == "e" & (d2=="e"), 1, ifelse((d1 == "a") & (d2 =="b"), 2, ifelse(d1 == "e"),3,99))

有任何想法吗?
谢谢

最佳答案

一种明显而直接的可能性是使用“if-else 条件”。在那个例子中

x <- c(1, 2, 4)
y <- c(1, 4, 5)
w <- ifelse(x <= 1, "good", ifelse((x >= 3) & (x <= 5), "bad", "fair"))
data.frame(x, y, w)

** 对于编辑中的附加问题**
这是你所期望的吗?
> d1 <- c("e", "c", "a")
> d2 <- c("e", "a", "b")
>
> w <- ifelse((d1 == "e") & (d2 == "e"), 1,
+ ifelse((d1=="a") & (d2 == "b"), 2,
+ ifelse((d1 == "e"), 3, 99)))
>
> data.frame(d1, d2, w)
d1 d2 w
1 e e 1
2 c a 99
3 a b 2

如果您对 ifelse 感到不舒服功能,您还可以使用 ifelse此类应用程序的声明。

关于r - 如何根据条件在 data.frame 中创建新变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12125980/

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