【发布时间】:2014-12-15 00:35:59
【问题描述】:
我正在尝试查找其中仅包含 numeric 数据的所有列名称。为此,我正在使用 is.numeric 并将其应用于我的数据,如下所示:
> sapply(ds[vars], is.numeric)
MinTemp MaxTemp Rainfall Evaporation Sunshine WindGustDir WindGustSpeed WindDir9am WindDir3pm WindSpeed9am
TRUE TRUE TRUE TRUE TRUE FALSE TRUE FALSE FALSE TRUE
WindSpeed3pm Humidity9am Humidity3pm Pressure9am Pressure3pm Cloud9am Cloud3pm Temp9am Temp3pm RainToday
TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE
RainTomorrow
FALSE
根据我的数据,以上是有道理的。例如,WindGustDir 和 WindDir9am 列具有 NW 之类的值,这就是它们是 FALSE 的原因。
当我将它应用于我的数据以获取所有数字列的名称时,我不希望看到非数字列 - 例如 WindGustDir 和 WindDir9am。但是,我看到的是 WindDir9am 而不是 WindGustDir。 问题我不明白为什么会这样。我该如何解决它,所以我只能得到数字列?
> numerics <- names(ds)[which(sapply(ds[vars], is.numeric))]
> numerics
[1] "Date" "Location" "MinTemp" "MaxTemp" "Rainfall" "Sunshine" "WindDir9am" "WindDir3pm" "WindSpeed9am"
[10] "WindSpeed3pm" "Humidity9am" "Humidity3pm" "Pressure9am" "Pressure3pm" "Cloud9am" "Cloud3pm"
这是我正在使用的数据的链接:http://rattle.togaware.com/weather.csv
编辑
> vars
[1] "MinTemp" "MaxTemp" "Rainfall" "Evaporation" "Sunshine"
[6] "WindGustDir" "WindGustSpeed" "WindDir9am" "WindDir3pm" "WindSpeed9am"
[11] "WindSpeed3pm" "Humidity9am" "Humidity3pm" "Pressure9am" "Pressure3pm"
[16] "Cloud9am" "Cloud3pm" "Temp9am" "Temp3pm" "RainToday"
[21] "RainTomorrow"
【问题讨论】:
-
无论
[vars]是什么,删除它,一切都会按预期工作。 -
which其实没必要 -
@flodel >_vars 是什么
-
@RichardScriven,但使用
which稍微快一些。 SO上有一个关于它的问题。
标签: r