如何在 R 中使用 data.table 填充缺失值的行?
有时我们需要用缺失值替换数据,而不是填充缺失值。当缺失值用数字编码或实际值对于数据研究无用或无意义时,可能需要这样做。此外,我们可能希望将来用其他内容替换这些值。
查看以下示例,了解如何使用 data.table 填充缺失值的行。
示例 1
以下代码片段创建了一个 data.table 对象:
library(data.table) x1<-rnorm(20) x2<-rnorm(20) x3<-rnorm(20) DT1<-data.table(x1,x2,x3) DT1
创建了以下 data.table 对象:
x1 x2 x3 1: 0.359330986 0.20756943 -1.41681109 2: 3.030837814 -0.90236706 0.18453973 3: 0.094325185 -0.62989777 -0.76818543 4: -0.605302247 0.57308532 -0.26006696 5: 0.589317918 -0.48431919 0.29462134 6: 0.924100008 -1.43570087 -1.68280918 7: -1.211456354 0.86749925 1.39952788 8: 0.061726522 1.10284992 -0.61436950 9: -0.981008050 0.18694454 2.67624706 10: -1.386289393 1.60893091 2.05774337 11: -0.978221580 -0.20008714 -1.03519166 12: -1.553948892 -1.36348786 -0.37988549 13: -1.002634550 -1.00437648 0.44634500 14: 0.280758507 -0.76264247 -0.36987504 15: -0.002528128 1.68233987 0.16512468 16: 1.200738477 -0.13188273 -0.19674097 17: 1.062584867 0.66075529 -0.06017969 18: -0.956870759 0.92754861 0.91910574 19: -1.323343765 -2.20655283 1.18144943 20: -1.618360372 -0.02947935 -0.53886698
为了用缺失值填充 DT1 的第一行,请将以下代码添加到上面的代码片段中:
DT1[1,(names(DT1)):=.SD[NA]] DT1
输出
如果将以上所有代码片段作为一个程序执行,则会生成以下输出:
x1 x2 x3 1: NA NA NA 2: 3.030837814 -0.90236706 0.18453973 3: 0.094325185 -0.62989777 -0.76818543 4: -0.605302247 0.57308532 -0.26006696 5: 0.589317918 -0.48431919 0.29462134 6: 0.924100008 -1.43570087 -1.68280918 7: -1.211456354 0.86749925 1.39952788 8: 0.061726522 1.10284992 -0.61436950 9: -0.981008050 0.18694454 2.67624706 10: -1.386289393 1.60893091 2.05774337 11: -0.978221580 -0.20008714 -1.03519166 12: -1.553948892 -1.36348786 -0.37988549 13: -1.002634550 -1.00437648 0.44634500 14: 0.280758507 -0.76264247 -0.36987504 15: -0.002528128 1.68233987 0.16512468 16: 1.200738477 -0.13188273 -0.19674097 17: 1.062584867 0.66075529 -0.06017969 18: -0.956870759 0.92754861 0.91910574 19: -1.323343765 -2.20655283 1.18144943 20: -1.618360372 -0.02947935 -0.53886698
示例 2
以下代码片段创建了一个 data.table 对象:
y1<-rpois(20,1) y2<-rpois(20,5) y3<-rpois(20,1) y4<-rpois(20,2) DT2<-data.table(y1,y2,y3,y4) DT2
创建了以下 data.table 对象:
y1 y2 y3 y4 1: 2 11 1 6 2: 1 4 1 3 3: 0 4 0 0 4: 2 7 2 1 5: 1 7 2 1 6: 1 5 1 1 7: 0 8 0 1 8: 3 6 2 3 9: 2 5 2 2 10: 1 8 0 3 11: 0 7 1 0 12: 1 3 1 2 13: 3 5 0 5 14: 0 0 2 2 15: 2 6 1 4 16: 0 7 2 2 17: 1 5 3 0 18: 1 6 0 1 19: 3 7 2 3 20: 0 5 0 1
为了用缺失值填充 DT2 的第五行,请将以下代码添加到上面的代码片段中:
DT2[5,(names(DT2)):=.SD[NA]] DT2
输出
如果将以上所有代码片段作为一个程序执行,则会生成以下输出:
y1 y2 y3 y4 1: 2 11 1 6 2: 1 4 1 3 3: 0 4 0 0 4: 2 7 2 1 5: NA NA NA NA 6: 1 5 1 1 7: 0 8 0 1 8: 3 6 2 3 9: 2 5 2 2 10: 1 8 0 3 11: 0 7 1 0 12: 1 3 1 2 13: 3 5 0 5 14: 0 0 2 2 15: 2 6 1 4 16: 0 7 2 2 17: 1 5 3 0 18: 1 6 0 1 19: 3 7 2 3 20: 0 5 0 1
广告