根据其他变量计算数据框中的变量

时间:2015-10-13 15:37:40

标签: r

我的问题类似于this,但我没有一个恒定的标准。

我的数据框如下所示:

> head(df)
  id run corr rank
1  a  v1  0.2    1
2  a  v2  0.3    2
3  a  v3  0.6    3
4  b  v2  0.1    1
5  b  v1  0.3    2
6  b  v3  0.4    3

> dput(df)
structure(list(id = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 
3L, 4L, 4L, 4L), .Label = c("a", "b", "c", "d"), class = "factor"), 
    run = structure(c(1L, 2L, 3L, 2L, 1L, 3L, 2L, 1L, 3L, 1L, 
    2L, 3L), .Label = c(" v1", " v2", " v3"), class = "factor"), 
    corr = c(0.2, 0.3, 0.6, 0.1, 0.3, 0.4, 0.1, 0.2, 0.3, 0.3, 
    0.4, 0.7), rank = c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 
    2L, 3L)), .Names = c("id", "run", "corr", "rank"), class = "data.frame", 
row.names = c(NA, -12L))

现在,我想计算v1(分别为v2和v3)等于秩1(分别为2和3)的频率。输出应如下所示:

    1   2   3
v1  2   2   0
v2  2   2   0
v3  0   0   4

3 个答案:

答案 0 :(得分:3)

FacebookSdk.sdkInitialize(getApplicationContext()); ... if (mCallbackManager == null) { mCallbackManager = CallbackManager.Factory.create(); mDeniedPermissions = new ArrayList<>(Arrays.asList(...)); } LoginManager.getInstance().registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { ... mDeniedPermissions = loginResult.getRecentlyDeniedPermissions(); } ... }); LoginManager.getInstance().logInWithReadPermissions(this, mDeniedPermissions); 方法:

LoginManager.getInstance().logOut()

答案 1 :(得分:2)

您可以使用table

table(df$run, df$rank)

      1 2 3
   v1 2 2 0
   v2 2 2 0
   v3 0 0 4

答案 2 :(得分:1)

使用table

> table(df[, c("run", "rank")])
     rank
run   1 2 3
   v1 2 2 0
   v2 2 2 0
   v3 0 0 4