我搜索了很多,以便在下面的帖子中找到类似的帖子,但还没有运气 我有一列数据如下(从原始大文件中提取有很多列)
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
注意:我的数据总是有一个增长的趋势,然后是某个点,然后是下降的趋势。 我知道如何在特定列上做简单的普通子集,但是当有一个增加和减少的趋势时,我没有得到逻辑子集。
提前致谢。
答案 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会发生什么。
希望有帮助=)