我有一个包含许多变量的有序 Dataframe ,我希望从与某个特定列的最长非NA行序列关联的所有列中提取数据。有简单的方法吗?我尝试过na.contiguous()
函数,但我的数据没有格式化为时间序列。
我的直觉是创建一个运行计数器,它确定一行是否有NA
,然后确定没有NA的连续行的数量。然后我将把它放在if
语句中,以便每次遇到NA
时都重新启动,输出一个 Dataframe ,其中包含每个非NA序列的长度。我可以用它来找到最长的序列。这看起来效率很低,所以我想知道是否有更好的方法!
1条答案
按热度按时间o8x7eapl1#
如果我理解正确的话:
[I]我希望从与一个特定列的非NA行的最长序列关联的所有列中提取数据
您有一个感兴趣的列,将其命名为
WANT
,并希望从WANT
中具有最高连续非NA值的单行数据中分离出所有列。示例数据
在这里,您需要所有
I
值,因为它是WANT
中运行时间最长的非NA值所在的行。如果我对您的问题的理解是正确的,我们可以将最佳答案found here扩展到您的情况,这将创建一个数据框,其中包含每列连续非NA值的运行计数。
使用此函数的好处是,它将计算所有列(任何类型,即字符、数字)上的连续非NA运行,然后您可以使用
which.max()
对任何列进行索引如果这不正确,请编辑您的问题以使其清晰。