我有一个数据框,我想保留任何价格列大于某个值的行(水果)。
这是一个可复制的示例,您可以将其直接复制并粘贴到R中:
fruit = c("apple","orange","banana","berry") #1st col
ID = c(123,3453,4563,3235) #2nd col
price1 = c(3,5,10,20) #3rd col
price2 = c(5,7,9,2) #4th col
price3 = c(4,1,11,8) #5th col
df = as.data.frame(cbind(fruit,ID,price1,price2,price3)) #combine into a dataframe
price_threshold = 10 #define a price
我只想获取任何价格大于10的水果,在这种情况下为香蕉和浆果
我期望的输出是以下两行:
banana 4563 10 9 11
berry 3235 20 2 8
我尝试过这样的事情:
output = df[which(df[,3:5] > price_threshold),]
但这没用。
这与这篇文章很接近,但是在这里我想看看最后三列中的任何值,而不仅仅是一列。
有什么建议吗?
首先,最好将data.frame初始化为
df = data.frame(fruit,ID,price1,price2,price3)
因此,变量未解析为因子。然后,您可以通过以下方式获得预期的结果:
df[rowSums(df[,3:5] > price_threshold)>0,]
结果:
fruit ID price1 price2 price3
3 banana 4563 10 9 11
4 berry 3235 20 2 8
希望这可以帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句