小编Yur*_*ers的帖子

条件计算均值

我想计算每个因子的数据框的平均值,但仅在满足某些条件时才计算.例如,我有这个数据框:

> df <- data.frame(name = rep(c("A", "B", "C"), 20), 
                 variable1 = rep(c(1, 1, 1, 1, 1, NA), 10), 
                 variable2 = rep(c(2, NA, 2, 2, 2, 2), 10), 
                 variable3 = rep(c(NA, 3, 3, 3, 3, 3), 10))

> table(df$name, df$variable1)

     1
  A 20
  B 20
  C 10

> table(df$name, df$variable2)

     2
  A 20
  B 10
  C 20

> table(df$name, df$variable3)

     3
  A 10
  B 20
  C 20
Run Code Online (Sandbox Code Playgroud)

我可以dplyr通过以下方式轻松计算每个变量的均值:

means <- df %>%
  group_by(name) %>%
  summarise_each(funs(mean(., na.rm = TRUE))) …
Run Code Online (Sandbox Code Playgroud)

r dplyr

10
推荐指数
1
解决办法
402
查看次数

R:从日落开始计算的天数

我正在分析由几个环境变量组成的复杂数据集中的时间模式以及来自各种动物物种的活动数据.这些数据已通过多个实验设置收集,每个设置的数据每分钟存储一次.该项目已经运行了几年,所以我的数据集相当大.

我的一个数据集的前几行看起来像这样:

> head(setup_01)
DateTime                Film_number unused PIR Wheel Temperature LightOld LightDay LightNight LightUV IDnumbers    error mouse shrew vole rat frog rest extra_info odour
1 2015-03-10 12:27:10                  x   0       0       13.40  1471.34    -0.97    1331.29  700.42           no error     0     0    0   0    0    0                1
2 2015-03-10 12:28:10                  x   0       0       13.43  1471.38    -1.07    1291.11  731.32           no error     0     0    0   0    0    0                1
3 2015-03-10 12:29:10                  x   0       0       13.31  1471.24    -1.08    1368.57 1016.02           no error     0     0    0 …
Run Code Online (Sandbox Code Playgroud)

datetime r time-series lubridate r-maptools

7
推荐指数
1
解决办法
655
查看次数

使用R中的循环顺序修改矩阵中的行值

我真的不知道怎么说这个问题所以很容易理解,所以请耐心等待.

我有一个2列矩阵,需要根据另一个矩阵修改第1列中的值h.

例如,h可能看起来像这样:h <- c(11,10,10,8,12) 我的数据矩阵如下所示:

 [1,]    0    0
 [2,]    0    0
 [3,]    0   26
 [4,]    0   44
 [5,]    0    0
 [6,]    0   65
 [7,]    0    0
 [8,]    0    0
 [9,]    0    0
[10,]    0   28
[11,]    0   25
[12,]    0    0
[13,]    0   81
[14,]    0    0
[15,]    0    0 ...
Run Code Online (Sandbox Code Playgroud)

等等...

我需要根据向量中的项目编号重命名零列h.所以我需要将行1:11标记为1,12:21标记为2,22:31标记为3等,如下所示:

 [1,]    1    0
 [2,]    1    0
 [3,]    1   26
 [4,]    1   44
 [5,]    1    0
 [6,]    1   65
 [7,] …
Run Code Online (Sandbox Code Playgroud)

loops for-loop r matrix sequential

1
推荐指数
1
解决办法
214
查看次数