R - 更改data.frame中的数据

时间:2014-10-20 16:10:47

标签: r dataframe subset

row.names   CLIMATE_IDENTIFIER  STN_ID  ENG_STN_NAME    DRY_BULB_TEMP   RELATIVE_HUMIDITY   DEW_POINT_TEMP  WIND_SPEED  WIND_DIRECTN_16 WIND_CHILL  LOCAL_YEAR  LOCAL_MONTH LOCAL_DAY   LOCAL_HOUR
1   170 8203428 49109   MARTOCK 35M -1.4    86  -3.5    0   NA  12.24   2011    2   12  19
2   199 8203428 49109   MARTOCK 35M -1.9    87  -3.7    0   NA  11.93   2011    2   12  19
3   262 8203428 49109   MARTOCK 35M -0.3    94  -1.2    0   NA  12.93   2011    2   14  7
4   263 8203428 49109   MARTOCK 35M 1.1 83  -1.4    0   NA  13.80   2011    2   14  13
5   280 8203428 49109   MARTOCK 35M -0.7    90  -2.2    0   NA  12.68   2011    2   14  10
6   299 8203428 49109   MARTOCK 35M 2.0 79  -1.3    0   NA  14.36   2011    2   14  12
7   318 8203428 49109   MARTOCK 35M -1.6    94  -2.4    0   NA  12.12   2011    2   14  9
8   347 8203428 49109   MARTOCK 35M 1.7 98  1.4 0   NA  14.17   2011    2   15  0
9   402 8203428 49109   MARTOCK 35M 3.3 91  2.0 0   NA  15.17   2011    2   15  3
10  419 8203428 49109   MARTOCK 35M 3.1 94  2.2 0   NA  15.04   2011    2   15  3
11  567 8203428 49109   MARTOCK 35M -3.7    56  -11.2   0   NA  10.82   2011    2   16  18
12  587 8203428 49109   MARTOCK 35M -4.9    60  -11.4   0   NA  10.07   2011    2   16  20

有一个我的数据的例子。

我希望将WIND_CHILL列中的所有值替换为 DRY_BULB_TEMP + ((-1.59+0.1345*DRY_BULB_TEMP)/5)*WIND_SPEED,但仅限于WIND_SPEED < 5

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

正如@Roland指出的那样,它是基本的子集:

i <- dat$WIND_SPEED < 5
dat[i,]$WIND_CHILL <- dat[i,]$DRY_BULB_TEMP + 
                      ((-1.59+0.1345 * dat[i,]$DRY_BULB_TEMP) / 5) * 
                       dat[i,]$WIND_SPEED

您可能想要仔细阅读SO R Tag Wiki

中的一些介绍性R资源