Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.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 如何使用某列作为引用在数据框中添加缺少的行(用0填充)?_R_Dataframe_Data Analysis_Missing Data_Data Cleaning - Fatal编程技术网

R 如何使用某列作为引用在数据框中添加缺少的行(用0填充)?

R 如何使用某列作为引用在数据框中添加缺少的行(用0填充)?,r,dataframe,data-analysis,missing-data,data-cleaning,R,Dataframe,Data Analysis,Missing Data,Data Cleaning,我有这个(大)数据框,我想添加与名为“date”的列相关的缺失行(用0填充) 例如: date 0 1 2 3 4 5 199807 0 546.98 19355.55 1110.6 4720.34 3435.9 199808 0 1668.85 4398.29 5816.71 599.7 535.28 199809 608.79 4

我有这个(大)数据框,我想添加与名为“date”的列相关的缺失行(用0填充)

例如:

date    0        1         2          3         4         5
199807  0       546.98     19355.55   1110.6    4720.34   3435.9
199808  0       1668.85    4398.29    5816.71   599.7     535.28
199809  608.79  446.68     2297.68    1862.64   415.6     933.46
199811  0       0          1366.59    1337.01   0         711.59
199812  0       0          601.8      2079.9    2030.24   368.44
199901  0       1462.8     0          552.78    0         0
199903  0       621.2      2242       753.36    0         0
我希望:

date    0        1        2            3         4          5
199807  0        546.98   19355.55     1110.6    4720.34    3435.9
199808  0        1668.85  4398.29      5816.71   599.7      535.28
199809  608.79   446.68   2297.68      1862.64   415.6      933.46
199810  0        0        0            0         0          0
199811  0        0        1366.59      1337.01   0          711.59
199812  0        0        601.8        2079.9    2030.24    368.44
199901  0        1462.8   0            552.78    0          0
199902  0        0        0            0         0          0
199903  0        621.2    2242         753.36    0          0

非常感谢

可以按以下方式进行:

1) 创建一个占位符数据集,在所有其他列中包含所有日期和零

2) 对于原始数据集中的日期,将值从原始数据写入占位符数据集中

# Create a placeholder dataset, including all dates, 0 at all other columns
df <- data.frame(date = c(199801:199812, 199901:199912),
                 `1` = 0, `2` = 0, `3` = 0, check.names = FALSE)

# create the dataset with some data (this will be the 'original' dataset)
df2 <- data.frame(date = c(199807:199809, 199811:199812, 199901:199903),
                  `1` = rnorm(8), `2` = rnorm(8), `3` = rnorm(8), check.names = FALSE)

# write data from original dataset to placeholder dataset
df[df$date %in% df2$date,] <- df2
#创建一个占位符数据集,包括所有日期,所有其他列为0

df我想你可能把一排零放错地方了;应该是199810排吗?一种方法是将
与一个包含所有日期的数据框合并(虽然这些日期在技术上不是日期,但无论如何),这将导致行中出现NA,然后用0替换缺少的值。你是对的。谢谢,我已经编辑过了。