Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 根据几个参数填写一列_R_Na - Fatal编程技术网

R 根据几个参数填写一列

R 根据几个参数填写一列,r,na,R,Na,一个例子胜过千言万语: > head(regi_T) Date Qobs Ptot Fsol Temp PE Q_mm J JY 62 1957-01-01 0.003 0.0 -99 -7.0 0.0 1.039 01-01 001 63 1957-01-02 0.002 0.8 -99 -11.0 0.0 0.926 02-01 002 64 1957-01-03 0.002 0.0 -99 -7.0 0.0 0.907 03-01

一个例子胜过千言万语:

> head(regi_T)
         Date  Qobs Ptot Fsol  Temp  PE  Q_mm     J  JY
62 1957-01-01 0.003  0.0  -99  -7.0 0.0 1.039 01-01 001
63 1957-01-02 0.002  0.8  -99 -11.0 0.0 0.926 02-01 002
64 1957-01-03 0.002  0.0  -99  -7.0 0.0 0.907 03-01 003
65 1957-01-04 0.002  0.0  -99   3.0 0.5 0.879 04-01 004
66 1957-01-05 0.002  1.3  -99  -1.0 0.2 0.746 05-01 005
67 1957-01-06 0.002  9.9  -99  -0.5 0.3 0.642 06-01 006

> head(regime_T)
   j        x
1 001 -1.0150943
2 002 -1.7000000
3 003 -0.8830189
4 004 -1.4452830
5 005 -2.3566038
6 006 -1.3603774
我需要填写
Regi_T$Temp
列,当它等于NA时,根据一天的天数(因此
Regi_T$JY
region_T$j

示例:
regi\u T
中第110天有一个NA,我需要获取
region\u T
中第110天的值,并用这个新值替换NA

有人有主意吗

我尝试了以下方法:

id <- which(is.na(regi_T$Temp))         
day.na <- regi_T[id,9]
id_temp <- which(regime_T$j==day.na)
regime_T[day.na,2]

非常感谢你的帮助

可能是这样的:

library(dplyr)

regi_T %>% 
  left_join(regime_T, by = c('JY' = 'j')) %>%
  mutate(nas_replaced = coalesce(T, x))
然后,您可以使用
选择
来仅获取所需的列
coalesce
使用给定参数中的第一个非na值

library(dplyr)

regi_T %>% 
  left_join(regime_T, by = c('JY' = 'j')) %>%
  mutate(nas_replaced = coalesce(T, x))