每年为每个案例的逻辑值分配高于给定阈值的值

时间:2015-06-30 10:32:30

标签: r dataframe data.table dplyr

我的数据框类似于以下摘录:

set.seed(1)
smpl_df <- data.frame(year = c(1500:2011), case = LETTERS[1:4])
smpl_df$var_one <- sample(100, size = nrow(smpl_df), replace = TRUE)

我有兴趣在此数据框中再添加一列。如果列1中的值高于数据集中表示的所有连续年份的给定阈值,我感兴趣的是列值var_one。例如,在目前的格式中,表格如下:

 head(smpl_df)
  year case var_one
1 1500    A      27
2 1501    B      38
3 1502    C      58
4 1503    D      91
5 1504    A      21
6 1505    B      90

我想在数据表中添加一列(新列的值不对,仅作为示例介绍)

  year case var_one var_one_higher_than_80_for_all_yrs_for_this_case
1 1500    A      27 0
2 1501    B      38 0
3 1502    C      58 0
4 1503    D      91 1
5 1504    A      21 0
6 1505    B      90 1

修改

要在帖子中添加以下评论中表达的有用点。我目前正在处理的长桌可以从下面的宽表中获得。在下面的示例中,我添加了列 NewColumn ,如果给定的案例值高于 2 ,则为Yes,如果值为No则为sample_df所有年份都低于或等于 2 。我希望在我的长桌(myString = "Updated first_name, email, last_name" )上实现相同的效果。

original wide table

编辑2

根据有关所需最终输出的有用评论,我的目的是生成一个与下表中最后一列相对应的列。

Sample Final Table

1 个答案:

答案 0 :(得分:0)

也许是有用的ifelse结构: smpl_df$var_one_higher <- ifelse("your func",1,0)