【问题标题】:Subset a data frame in R based on above and below a threshold value根据高于和低于阈值对 R 中的数据帧进行子集
【发布时间】:2015-05-09 02:53:57
【问题描述】:

我搜索了很多以找到与下面我的帖子类似的帖子,但还没有运气 我有 1 列数据,如下所示(从具有多列的原始大文件中提取)

C1 
0 
1 
2 
3 
4 
3
3
2
1

根据这些数据,我想生成一个新列 C2,其中 C2 中的值应仅指示与最大值相比,我的 C1 列值高于和低于阈值的位置。 在这种情况下,max(C1) 为 4。因此,如果将阈值设置为 2,则新数据应如下所示。

C1 C2 
0  0
1  0
2  1
3  1
4  1
3  1
3  1
2  1 
1  0

注意:我的数据在某个点上总是呈上升趋势,然后呈下降趋势。 我知道如何在特定列上做简单的普通子集,但是当有增加和减少的趋势时,我没有得到子集的逻辑。

提前致谢。

【问题讨论】:

    标签: max subset threshold


    【解决方案1】:

    我会在 r 中使用 plyr 包,并使用 ifelse 语句作为 mutate 函数的一部分。我会写我的代码然后解释。我假设您已经在名为 df

    的数据框中拥有 C1 向量

    install.packages('plyr')

    图书馆(plyr)

    df2 = 2,1,0))

    mutate 函数会创建一个新列来满足您想要的任何功能。在这种情况下,我使用了类似于 excel 的 IF() 函数的 ifelse 函数,该函数输入:

    条件如果为真会发生什么如果为假会发生什么。

    希望对您有所帮助 =)

    【讨论】:

    • 亲爱的 Emby, 在我的特殊情况下,您的代码对我不起作用。但是我得到了我的问题的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多