如何将整洁的data.frame中的值替换为其他值的条件和

时间:2018-05-31 02:38:17

标签: r tidyverse

对于类似于下面的df <- read.table(text = " Estrato Callevive 1 2 'Moderadamente Satisfecho' 2 4 'Moderadamente Satisfecho' 3 3 'Moderadamente Satisfecho' 4 0 'Moderadamente Satisfecho' 5 3 'Moderadamente Satisfecho' 6 3 'Moderadamente Satisfecho' 7 3 'Moderadamente Satisfecho' 8 3 'Moderadamente Satisfecho' 9 3 'Moderadamente Satisfecho' 10 2 'Moderadamente Satisfecho' 11 3 'Moderadamente Satisfecho' 12 2 'Moderadamente Satisfecho' 13 2 'Moderadamente Satisfecho' 14 3 'Moderadamente Satisfecho' 15 2 'Moderadamente Satisfecho' 16 2 'Muy Satisfecho' 17 2 'Un Poco Satisfecho' 18 3 'Moderadamente Satisfecho' 19 2 'Moderadamente Satisfecho' 20 2 'Moderadamente Satisfecho' 21 2 'Muy Satisfecho' 22 2 'Muy Satisfecho' 23 2 'Muy Satisfecho' 24 2 'Muy Satisfecho' 25 5 'Moderadamente Satisfecho'", row.names = 1) (在我的情况下,读作带有很多变量的.csv),如何将变量data.frame的值替换为变量{{1}的总和和a,用于匹配日期?我只能用漫长而笨重的方式做到这一点。

a

2 个答案:

答案 0 :(得分:1)

您可以使用 <PreferenceCategory android:title="Auto Restore"> <CheckBoxPreference android:id="@+id/chAutoRestore" //I think that it's supernumerary android:key="@string/IsAutoRestore" android:summary="Auto restore every 15" android:title="Auto Restore" /> </PreferenceCategory> 中的spreadgather

dplyr

答案 1 :(得分:1)

使用by

在基地R中这样的事情怎么样?
df.res <- do.call(rbind, unname(by(df, df$timestep, function(x) {
    x$value[x$variable == "a"] = sum(x$value[x$variable %in% c("a", "f")]);
    x})));
head(df.res);
#     timestep value variable
#1  1921-10-31  5756        a
#13 1921-10-31     0        b
#25 1921-10-31     0        c
#37 1921-10-31     0        d
#49 1921-10-31   345        e
#61 1921-10-31  5756        f