gpt4 book ai didi

r - 根据各种其他列值中的值创建新列 - 使用 R

转载 作者:行者123 更新时间:2023-12-04 12:04:32 24 4
gpt4 key购买 nike

DATA <- data.frame(
LONDON= c(2,0,1,3,0,1),
STOKE = c(45, 40, 6, 22, 16, 10),
DERBY = c(5, 9, 8, 9, 2, 3),
NEWCASTLE = c(7, 6, 4, 10, 12, 8),
MANCHESTER = c(2, 12, 1, 7, 8, 3),
WATFORD = c(9, 2, 4, 6, 13, 6),
KENT = c(1, 3, 23, 7, 12, 2),
SURREY = c(2, 8, 4, 5, 1, 4),
ESSEX = c(4, 12, 7, 9, 5, 1),
HULL = c(1,3, 2, 4, 3, 1))
我想创建一个“NEW_COL”列,它根据四个不同的值列显示"is"或“否”。当 DERBY 或 NEWCASTLE 或 SURREY > 7 或 KENT 或 HULL = 2 时,我希望新列有一个"is"(否则有一个“否”)
我还希望“NEW_COL”列成为数据集中的第二列。
我以为这样(下面)会做到这一点,但事实并非如此。关于我在这里做错了什么/如何导航的任何帮助。
DATA2 <- DATA %>% mutate(NEW_COL = ifelse(rowSums(select(., DERBY:NEWCASTLE) > 7 | select(., SURREY >7)  | select(., KENT == 2) | select(., HULL == 2), na.rm = TRUE), 'Yes', 'No'), .before = 2)

最佳答案

我们可以使用 if_any.before改变位置

library(dplyr)
DATA <- DATA %>%
mutate(NEW_COL = c("NO", "YES")[1 +
(if_any(c(DERBY, NEWCASTLE, SURREY), `>`, 7)|
if_any(c(KENT, HULL), `==`, 2))], .before = 2)
-输出
DATA
LONDON NEW_COL STOKE DERBY NEWCASTLE MANCHESTER WATFORD KENT SURREY ESSEX HULL
1 2 NO 45 5 7 2 9 1 2 4 1
2 0 YES 40 9 6 12 2 3 8 12 3
3 1 YES 6 8 4 1 4 23 4 7 2
4 3 YES 22 9 10 7 6 7 5 9 4
5 0 YES 16 2 12 8 13 12 1 5 3
6 1 YES 10 3 8 3 6 2 4 1 1

关于r - 根据各种其他列值中的值创建新列 - 使用 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69094598/

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