小编swh*_*sky的帖子

添加两个缺少数据的变量

这对于普通R用户来说可能是一个非常简单的问题,但我似乎无法找到解决方案.我想添加两个缺少数据的变量.

x1<-c(NA,3,NA,5) x2<-c(NA,NA,4,3) x3<-x1+x2 x3 [1] NA NA NA 8

但我真正想要的是:

[1] NA 3 4 8
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激.我怎样才能保留NA?

r missing-data

5
推荐指数
3
解决办法
2505
查看次数

根据r中的第三列将值复制到下一行

我正在尝试从我拥有的数据创建一个新列smk_R.对于每个ID变量,我随着时间的推移有两种类型的数据.类型1数据是我的锚点,将保留用于以后的分析.类型0行中的信息也很重要,应该在每个ID中及时推送到下一个类型1行.基本上,我希望看看人们是否在两次Type 1评估中抽烟(smk = 0表示否,smk = 1表示肯定).如果他们这样做,即使在特定类型1评估中smk = 0,下一个类型1评估也应指示smk_R = 1.任何关于如何做到这一点的想法将不胜感激.我的数据中没有变量grp但如果可以从dat1创建,我想我可以在组内获取smk的最大值来获得smk_R.

ID<-c(5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,9,9,9,9,9,9,9,9,9,9,9,9,9)
time<-c(0.16,0.35,0.72,1.17,1.19,1.19,1.65,1.99,2.2,2.37,2.78,3.57,3.88,4.12,0.29,0.35,0.79,1.17,1.29,1.29,1.75,1.96,2.27,2.57,2.78,3.57,4.88,5.12)
type<-c(0,1,0,1,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,0,0,0,0,1,1,1)
smk<-c(1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1)
grp<-c(1,1,2,2,3,3,4,4,4,4,4,4,5,6,1,1,2,2,3,3,4,4,4,4,4,4,5,6)
smk_R<-c(1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0,0,0,0,0,1,1)

dat1<-cbind.data.frame(ID,time,type,smk)
dat1

   ID time type smk
1   5 0.16    0   1
2   5 0.35    1   0
3   5 0.72    0   0
4   5 1.17    1   0
5   5 1.19    0   0
6   5 1.19    1   1
7   5 1.65    0   1
8   5 1.99    0   1
9   5 2.20    0   1
10  5 2.37    0   0
11  5 2.78    0   0
12  5 3.57 …
Run Code Online (Sandbox Code Playgroud)

if-statement r shift lag dplyr

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

滞后,平均和替换变量

我有前三列数据.yest列表示id在前一天做了一些事情.我试图通过添加一个新变量"new"从dat到dat2,它做了三件事:

  1. 将yest的值复制到前一天.但这些日子并不总是连续的.因此它只应复制,如果它是实际的前一个(第2天与第3天),而不仅仅是从下一行到上一行.

  2. 应该将yest的值复制到具有相同id/day组合的所有new行

  3. 如果每个id/day组合有多个yest值,则应在填充新变量之前对它们进行平均.

我一直在尝试不同的ifelse并合并失败的组合.任何有关这方面的帮助将非常感激.

    id<-c(1,1,1,1,1,3,3,3,3,3,3,3,8,8,8,8,8)
    day<-c(1,2,2,3,5,0,1,2,3,4,5,5,0,3,4,4,5)
    yest<-c(NA,1,3,NA,NA,1,2,NA,NA,NA,3,NA,NA,NA,NA,3,4)
    dat<-cbind(id,day,yest)
    dat
          id day yest
     [1,]  1   1   NA
     [2,]  1   2    1
     [3,]  1   2    3
     [4,]  1   3   NA
     [5,]  1   5   NA
     [6,]  3   0    1
     [7,]  3   1    2
     [8,]  3   2   NA
     [9,]  3   3   NA
    [10,]  3   4   NA
    [11,]  3   5    3
    [12,]  3   5   NA
    [13,]  8   0   NA
    [14,]  8   3   NA
    [15,]  8   4   NA
    [16,]  8   4    3
    [17,]  8   5 …
Run Code Online (Sandbox Code Playgroud)

replace r lag

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

标签 统计

r ×3

lag ×2

dplyr ×1

if-statement ×1

missing-data ×1

replace ×1

shift ×1