基于阈值上下设置R中的数据帧

时间:2015-03-07 15:59:11

标签: max subset threshold

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

的数据框中拥有 C1 向量
  

install.packages( 'plyr')

     

库(plyr)

     

df2< - mutate(df,c2 = ifelse(c1> = 2,1,0))

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

条件如果为True 会发生什么,如果为false会发生什么。

希望有帮助=)