R在列的开头和结尾删除零

时间:2015-09-03 09:47:37

标签: r

在此扩展别人的问题:Remove zeros in the start and end of a vector, 如何在数据表中执行相同的操作?

示例数据:

x Date.Time
0 2014-09-25 10:10:00
0 2014-09-25 10:15:00 
0 2014-09-25 10:20:00
0 2014-09-25 10:25:00
4 2014-09-25 10:30:00
5 2014-09-25 10:35:00
0 2014-09-25 10:40:00
0 2014-09-25 10:45:00
3 2014-09-25 10:50:00
2 2014-09-25 10:55:00
7 2014-09-25 11:00:00
0 2014-09-25 11:05:00
0 2014-09-25 11:10:00
0 2014-09-25 11:15:00

我想将其转化为:

x Date.Time
4 2014-09-25 10:30:00
5 2014-09-25 10:35:00
0 2014-09-25 10:40:00
0 2014-09-25 10:45:00
3 2014-09-25 10:50:00
2 2014-09-25 10:55:00
7 2014-09-25 11:00:00

保留中间x列中的零行,但删除包含零的前导和尾随行。

我试图使用这个命令,改编自原始问题:

example[min(which(example$x !=0)):max(which(example$x !=0))]

但我收到错误“未选择的列已选中”。我可以提取列并执行命令,但我想保留Date.Time关系。

这是我的第一个问题,为格式/礼节错误道歉。

1 个答案:

答案 0 :(得分:2)

你只是错过了一个逗号:

example[min(which(example$x !=0)):max(which(example$x !=0)),]

您需要逗号,因为您需要告诉R使用哪些列。

例如:

example[1:5, 2:3]

获取第1行至第5行以及第2列至第3列。

如果您在逗号后面省略了数字,则选择所有列。