Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.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
如何获取元素/列,即使它是';s NA与R中的tapply_R_Na_Tapply - Fatal编程技术网

如何获取元素/列,即使它是';s NA与R中的tapply

如何获取元素/列,即使它是';s NA与R中的tapply,r,na,tapply,R,Na,Tapply,我有这样一个数据集: df <- data.frame("y"=c(2010,2011,2012,2013,2010,2012,2010,2011,2012),"x"=c(1,2,1,1,2,2,4,4,4),"a"=c(5,3,0,2,3,0,2,3,0)) y x a 1 2010 1 5 2 2011 2 3 3 2012 1 0 4 2013 1 2 5 2010 2 3 6 2012 2 0 7 2010

我有这样一个数据集:

df <- data.frame("y"=c(2010,2011,2012,2013,2010,2012,2010,2011,2012),"x"=c(1,2,1,1,2,2,4,4,4),"a"=c(5,3,0,2,3,0,2,3,0))



    y  x a
1 2010 1 5
2 2011 2 3
3 2012 1 0
4 2013 1 2
5 2010 2 3
6 2012 2 0
7 2010 4 2
8 2011 4 3
9 2012 4 0
      1  2   3   4
2010  5  3  NA   2
2011 NA  3  NA   3
2012  0  0  NA   0
2013  2 NA  NA  NA
即使df的x列中没有值3,我如何获得'3'列? 大概是这样的:

df <- data.frame("y"=c(2010,2011,2012,2013,2010,2012,2010,2011,2012),"x"=c(1,2,1,1,2,2,4,4,4),"a"=c(5,3,0,2,3,0,2,3,0))



    y  x a
1 2010 1 5
2 2011 2 3
3 2012 1 0
4 2013 1 2
5 2010 2 3
6 2012 2 0
7 2010 4 2
8 2011 4 3
9 2012 4 0
      1  2   3   4
2010  5  3  NA   2
2011 NA  3  NA   3
2012  0  0  NA   0
2013  2 NA  NA  NA

x
列设为
因子
,其中包含
x
列的
min
max
之间的所有值

df$x <- factor(df$x, levels = seq(min(df$x), max(df$x)))
tapply(df$a,list(df$y,df$x),sum)

#      1  2  3  4
#2010  5  3 NA  2
#2011 NA  3 NA  3
#2012  0  0 NA  0
#2013  2 NA NA NA
df$x