R 如何找到数据帧中两列之间的比率?

R 如何找到数据帧中两列之间的比率?,r,dataframe,R,Dataframe,比如说 df Cars Male female Ford focus 23 64 vw golf 76 12 ford ka 34 55 renault megane 12 83 如何找到每辆车的男女比例>0.5只需使用该比例对数据框进行子集: df[df$Male / df$Female > 0.5, ] Cars Male Female 2 v

比如说

df

Cars             Male   female
Ford focus        23      64
vw golf           76      12
ford ka           34      55
renault megane    12      83

如何找到每辆车的男女比例>0.5

只需使用该比例对数据框进行子集:

df[df$Male / df$Female > 0.5, ]

     Cars Male Female
2 vw golf   76     12
3 ford ka   34     55

您可以尝试
which()
函数:

df[which(df[,2]/df[,3]>0.5),1]

祝你好运

因此,如果我只是在寻找所有汽车的比率,它会是‘df[df$Male/df$Female,】吗?不会。
df$Male/df$Female
很可能返回
数值(非整数),但是带括号的部分需要返回引用特定行或列的整数。但是,
df$Male/df$Female
本身将为您提供一个比率向量。您可以使用
df$Ratio@r2evans将其保存在data.frame中,非常感谢!然后,我尝试了df[df$Ratio>0.5],但是否可以使用sort将其从最高值传递到最低值?使用base R,您将需要使用
顺序
,可能类似于:
df2 0.5,];df2[顺序(df2$比率,递减=真),]
。在这个用例中,
df[,2]/df[,3]>0.5
之间没有功能上的区别,后者(df[,2]/df[,3]>0.5)
。第一个返回一个
逻辑
向量,第二个返回一个
整数
向量,两者将产生相同的结果。所以为了可读性和代码高尔夫,我建议不要在这段代码中使用
which
。它返回满足要求的汽车的数据帧。请注意括号中的
which()
,我没有歪曲它,我说
which
的使用在这里是无关的;它的工作原理与不使用
的情况完全相同,而不使用
。(顺便说一句:
df[…,1]
不返回
data.frame
,它返回一个
vector
。你用OP的数据尝试过你自己的代码吗?不过,我在这个问题中没有看到“data.frame output”的要求,所以这一点是没有意义的。)我不想在这里诋毁你,我想告诉大家
的价值和功能。