【发布时间】:2020-04-23 16:42:20
【问题描述】:
我有一个数据框,其值如下
df=data.frame(c(0,0,NA),c(0,0,NA),c(0,1,0),c(1,0,0),c(0,0,1),c(1,0,1),c(0,1,0),c(1,0,0),c(1,0,0),c(0,0,1),c(0,0,1))
0 0 0 1 0 1 0 1 1 0 0
0 0 1 0 0 0 1 0 0 0 0
NA NA 0 0 1 1 0 0 0 1 1
我必须计算连续 0 的数量。第一个 0 必须转换为 .95。
如果有 2 个连续的 0,则第二个必须转换为 .6。
如果有 3 个或更多连续的 0,则必须将它们转换为 .4。
如果值为 1,则应不理会它。
在显示的示例中,数据框将转换为:
0.95 0.6 0.4 1 0.95 1 0.95 1 1 0.95 0.6
0.95 0.6 1 0.95 0.6 0.4 1 0.95 0.6 0.4 0.4
NA NA 0.95 0.6 1 1 0.95 0.6 0.4 1 1
这只能使用基本包来完成。
【问题讨论】:
-
您可以发布您的数据框的
dput吗?不清楚这是一个具有 1 列和 2 行的数据框,其中值是 1 和 0 的字符串,还是 12 列和 2 行... -
@AntoniosK 有 12 列和 2 行。我创建了一个示例数据框。使用这个 df=data.frame(c(0,0),c(0,0),c(0,1),c(1,0),c(0,0),c (1,0),c(0,1),c(1,0),c(1,0),c(0,0),c(0,0))