选择R中数据帧的每第12列

时间:2014-11-26 23:41:49

标签: r dataframe

我有一个包含大约430个变量(列)的宽数据框。每列代表35年期间的日历月。

数据的简化摘录如下:

ID  a890    a891    a892    a893    a894    a895    a896    a897    a898    a899    a900    a901
1   0       0       0       1       1       1       1       1       1       1       1       1
2   NA      NA      NA      NA      1       1       1       1       1       1       1       1
3   0       0       NA      1       1       1       1       1       1       1       1       1

问题第1部分:

我想转换数据,以便每年只进行一次测量。

一种解决方案是选择每12条记录,这可以手动完成(11号后每12个记录),就像我们一样。

hist.year <- hist[,c("a900","a912","a924","a936","a948","a960","a972","a984","a996","a1008","a1020","a1032","a1044","a1056","a1068","a1080","a1092","a1104","a1116","a1128","a1140","a1152","a1164","a1176","a1188","a1200","a1212","a1224","a1236","a1248","a1260","a1272","a1284")]

然后我们需要重新命名age16,age17等列。拥有更多简约且不易出错的代码,或许使用序列,已经是一种改进。

问题第2部分:

此外,还有一定数量的缺失数据(NA),我希望将其最小化。因为事件的精确时间在我们正在进行的分析类型中并不是特别重要,所以我希望能够从每个第12条记录的任何一侧获取记录,如果它是NA而它们不是。例如,如果缺少12号,24号等记录,则将age16,age17等替换为第11,23等记录的内容,如果它们没有丢失的话。如果缺少以上所有内容,请尝试第13,25等记录....我想最后得到一个数据帧,而不是在控制台中查看输出。

有人知道怎么做吗?请注意,我是R的初学者,更习惯Stata软件,所以你真的需要引导我。

我可以看到有几个相关的问题(Deleting every n-th row in a dataframeSplitting a dataframe every other column to create two separate files),但看不出如何根据我的情况调整它们。

非常感谢。

0 个答案:

没有答案