我是R的新手,无法掌握这个概念。假设我加载了一个名为“地方”的表格,其中包含3个说出的列-城市,人口和夏季平均气温
假设我要“过滤”-生成一个人口少于一百万且夏季平均气温高于70度的新表格对象。
在任何其他我使用过的程序中,这都非常容易,但是做了一些研究之后,我正在使自己陷入更大的困惑。鉴于R的目的及其作用,这必须是非常简单的东西。
如何将以上条件应用于表格?将采取什么步骤?据我了解,我不能轻易根据其名称选择表格标题,这会很好(例如WHERE city
最佳答案
给定一个数据框“dfrm”,其“城市”列中的城市名称,“人口”列中的人口和“meanSummerT”列中的夏季平均温度将满足您对满足这些共同要求的子集的要求具有以下任何一项:
subset( dfrm, population < 1e6 & meanSummerT > 70)
dfrm[ which(dfrm$population < 1e6 & dfrm$meanSummerT > 70) , ]
dfrm[ which( dfrm[[ 'population' ]] < 1e6 & dfrm[[ 'meanSummerT' ]] > 70) , ]
如果您只需要满足这些共同标准的城市名称,那么这些名称将起作用:subset( dfrm, population < 1e6 & meanSummerT > 70 , city)
dfrm[ which(dfrm$population < 1e6 & dfrm$meanSummerT > 70) , "city" ]
dfrm[ which(dfrm[['population']] < 1e6 & dfrm[['meanSummerT']] > 70) , "city" ]
请注意,列名未在子集中或在“$”运算符后加引号,但在“[[”内加引号。请注意,如果没有数据行匹配,则使用which
可能很危险,因为您将获得整个数据帧,而不是没有任何行。关于r - 根据条件过滤数据框中的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14205583/