小编Azi*_*ggy的帖子

将自定义函数应用于每一行仅使用参数的第一个值

我正在尝试使用以下数据集将NA值重新编码0为列的子集:

set.seed(1)
df <- data.frame(
  id = c(1:10),
  trials = sample(1:3, 10, replace = T),
  t1 = c(sample(c(1:9, NA), 10)),
  t2 = c(sample(c(1:7, rep(NA, 3)), 10)),
  t3 = c(sample(c(1:5, rep(NA, 5)), 10))
  )
Run Code Online (Sandbox Code Playgroud)

每行都有一定数量的试验(1-3之间),由trials列指定.列t1-t3表示每个试验的分数.

试验次数表示NA应将s重新编码为的列的子集0:NA在试验次数内的s表示缺失数据,并且应该被重新编码为0,而NA在试验次数之外的s没有意义,并且应该保留为NAs .因此,对于一行,其中trials == 3一NA列t3将被重新编码为0,但在一行中trials == 2,一个NAin t3将保持为NA.

所以,我尝试使用这个功能:

replace0 <- function(x, …
Run Code Online (Sandbox Code Playgroud)

r apply missing-data na

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

如何为 r 中的嵌套组创建组索引

我有一个数据集,其中包含多个嵌套在个体中的观察结果。此示例数据集包括 id 和一周中的某天(dayweek,1-7)的列。我有来自每个人 3 天的观察结果。因此,一个人可能只提交了星期日/星期三/星期四 (1, 4, 5) 的报告,而另一个人可能提交了星期日/星期一/星期二 (1, 2, 3) 的报告,如下例所示:

df <- data.frame(
  id = c(rep(1:2, each = 6),2),
  dayweek = c(rep(c(1, 4, 5), each = 2),rep(c(1, 2, 3), each = 2), 3)
)
Run Code Online (Sandbox Code Playgroud)

我想设置一个列来标记每个人的第一天、第二天和第三天,如下所示:

df2 <- data.frame(
  id = c(rep(1:2, each = 6),2),
  dayweek = c(rep(c(1, 4, 5), each = 2),rep(c(1, 2, 3), each = 2), 3),
  daynum = c(rep(1:3, each = 2, times = 2), 3)
)
Run Code Online (Sandbox Code Playgroud)

我尝试使用

df %>% group_indices(id, dayweek) 
Run Code Online (Sandbox Code Playgroud)

但这会为每个单独的日期组合生成一个新的 ID。有什么好方法可以做到这一点?

提前致谢!

r

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

标签 统计

r ×2

apply ×1

missing-data ×1

na ×1