在大于5的dataframe()中查找数字

在大于5的dataframe()中查找数字,r,R,如何选择值大于5的数字?如何确定这些数字在哪一行和哪一列?也就是说,如何获得这样的数据帧 df = data.frame( co1 = c(5,9,6,1,6), co2 = c(8,5,4,6,2), co3 = c(6,5,4,1,2), co4 = c(6,1,5,3,2), co5 = c(5,1,2,6,8)) rownames(df) = c("row1","row2","row3","row4","row5") df # co

如何选择值大于5的数字?如何确定这些数字在哪一行和哪一列?也就是说,如何获得这样的数据帧

df = data.frame(
    co1 = c(5,9,6,1,6),
    co2 = c(8,5,4,6,2), 
    co3 = c(6,5,4,1,2),
    co4 = c(6,1,5,3,2),
    co5 = c(5,1,2,6,8))

rownames(df) = c("row1","row2","row3","row4","row5")

df
#      co1 co2 co3 co4 co5
# row1  5   8   6   6   5
# row2  9   5   5   1   1
# row3  6   4   4   5   2
# row4  1   6   1   3   6
# row5  6   2   2   2   8
只是一个试探性的回答(因为还不清楚您希望得到什么):假设您希望获得一个数据帧,记录数据帧中列中的值是否大于5,您可以运行以下
for
循环:

for(i in 1:ncol(df)){
  df[i] <- ifelse(df[i] > 5, "yes", "no")
}
df
  co1 co2 co3 co4 co5
1  no yes yes yes  no
2 yes  no  no  no  no
3 yes  no  no  no  no
4  no yes  no  no yes
5 yes  no  no  no yes
for(1中的i:ncol(df)){
df[i]5,“是”、“否”)
}
df
二氧化碳1二氧化碳3二氧化碳4二氧化碳5
1否是是是否
2是否否否否
3是否否否否
4不是不是
5是不是不是不是

这就是您想要的吗?

尝试使用
which
which(df>5,arr.ind=TRUE)
您的代码没有运行,因为它缺少一些
c
。添加空格使其更为明显。了解预期输出应该是什么样子会很有用。另外,您所说的“如何获得这样的数据帧”(这不是您要在其中标识某些值的df吗?)是什么意思?如果您要走这条路线,那么
df[]5,“yes”,“no”)
就足够了。无需循环。谢谢,这很有用。