问题描述
如何获得此数据框的简单(非空)子集,其中匹配的列是一个因素?
初始...
> df$STATE <- as.factor(df$STATE)
头:
> head(df)
YEAR STATE TYPE.OF.PRODUCER ENERGY.soURCE GEN
1191 1990 US-TOTAL Total Electric Power Industry Coal 1594011479
2662 1991 US-TOTAL Total Electric Power Industry Coal 1590622748
4153 1992 US-TOTAL Total Electric Power Industry Coal 1621206039
5673 1993 US-TOTAL Total Electric Power Industry Coal 1690070232
7210 1994 US-TOTAL Total Electric Power Industry Coal 1690693864
8771 1995 US-TOTAL Total Electric Power Industry Coal 1709426468
级别:
> levels(df$STATE)
[1] " " "AK" "AL" "AR" "AZ" "CA"
[7] "CO" "CT" "DC" "DE" "FL" "GA"
[13] "HI" "IA" "ID" "IL" "IN" "KS"
[19] "KY" "LA" "MA" "MD" "ME" "MI"
[25] "MN" "MO" "MS" "MT" "NC" "ND"
[31] "NE" "NH" "NJ" "NM" "NV" "NY"
[37] "OH" "OK" "OR" "PA" "RI" "SC"
[43] "SD" "TN" "TX" "US-TOTAL" "UT" "VA"
[49] "VT" "WA" "WI" "WV" "WY"
str(df)
> str(df)
'data.frame': 30 obs. of 5 variables:
$ YEAR : int 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 ...
$ STATE : Factor w/ 53 levels " ","AK","AL",..: 46 46 46 46 46 46 46 46 46 46 ...
$ TYPE.OF.PRODUCER: Factor w/ 6 levels "Combined Heat and Power,Commercial Power",..: 6 6 6 6 6 6 6 6 6 6 ...
$ ENERGY.soURCE : Factor w/ 10 levels "Coal","Geothermal",..: 1 1 1 1 1 1 1 1 1 1 ...
$ GEN : num 1.59e+09 1.59e+09 1.62e+09 1.69e+09 1.69e+09 ...
一次尝试:
> df[df$STATE == 'US-TOTAL',]
<0 rows> (or 0-length row.names)
[1] YEAR STATE TYPE.OF.PRODUCER ENERGY.soURCE
[5] GEN
另一种尝试:
> subset(df,STATE == 'IL')
<0 rows> (or 0-length row.names)
[1] YEAR STATE TYPE.OF.PRODUCER ENERGY.soURCE
[5] GEN
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)