如果此条件匹配,则从 R 中的另一列返回值?

if this condition match then return value from another column in R?

提问人:Jay Prakash 提问时间:6/21/2023 最后编辑:Jay Prakash 更新时间:6/21/2023 访问量:41

问:

如果“minimum_nights”列匹配

enter image description here

然后从“host_column”列中返回某些值。

我过滤了值为“> 90”的列。 现在,是否可以从中获取值? 只是一些特定的值(如果只是在“英国”地区之外?minimum_nightshost_location

附加数据

airbnb1 <- airbnb1 %>%
select(host_location, minimum_nights, revenue) %>%
filter(minimum_nights > 90) %>%  
mutate(host_location = ifelse(host_location== "", 'unknown', 
host_location)) %>%
reframe(host_location, minimum_nights, revenue)
r if 语句 匹配 情况

评论

0赞 jpsmith 6/21/2023
嗨,@JayPrakash,由于这些原因,请不要将您的数据作为图像发布。另外,请不要添加指向您的数据的链接(它们可能会随着时间的推移而失效等),而是将数据作为代码添加。如果您在将数据集转换为可重现代码时需要帮助,可以在此处找到帮助。祝你好运!
0赞 Community 6/21/2023
请提供足够的代码,以便其他人可以更好地理解或重现问题。

答:

0赞 Jay Prakash 6/21/2023 #1

我自己解决了我的问题,并得到了 StackOverflow 的一些帮助。 这花了我几乎半天的时间。

如果有人对我投反对票也没问题,我会为像我一样需要修复的人保留这篇文章。

这里:

Airbnb_outside <- Airbnb

airbnb_outside <- airbnb_outside %>%  
filter(minimum_nights > 90) %>% 
mutate(host_location = ifelse(host_location== "", 'unknown', host_location))

过滤器>突变了“host_column”

airbnb_outside<- airbnb_outside %>% 
mutate(really = if_else(str_ends(host_location, "Kingdom"), "in", "out"))

 

过滤器>变异了另一个“列”

airbnb_outside <- airbnb_outside %>% 
select(host_location, minimum_nights, revenue, really) %>%
filter(really == 'out') %>% 
reframe(host_location, minimum_nights, revenue, really)

我们有一个新的有趣列“真的”,其中包含一个新的数据框“Airbnb_outside”和一个原始数据框“Airbnb”。

airbnb <- airbnb(airbnb, airbnb_outside, by = "host_location")

原始数据帧上的抗联接