我正在使用R和RStudio。 我有以下数据框:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
我想在数据框中添加ID TIME DV GpH SIpH GTT SITT
1 0 0 1.4 7.1 1.8 3.5
1 1 0.5 1.4 7.1 1.8 3.5
1 2 2 1.4 7.1 1.8 3.5
1 3 5 1.4 7.1 1.8 3.5
2 0 0 1.5 7.5 0.7 2.5
2 1 0.5 1.5 7.5 0.7 2.5
2 2 2 1.5 7.5 0.7 2.5
2 3 5 1.5 7.5 0.7 2.5
列,以便:
1)如果pH
对于每个主题TIME
小于GTT
,那么该ID
pH
为GpH
。
2)如果TIME
大于GTT
且小于GTT+SITT
的总和,那么pH = SIpH
为该主题。
3)如果TIME
大于每个主题GTT+SITT
的总和,那么pH=6
。
我怎样才能以快速的方式在R中实现这一目标?
答案 0 :(得分:1)
您可以尝试嵌套ifelse
:
&#34;创建&#34;数据:
data <- read.csv(head=TRUE, text =
"ID,TIME,DV,GpH,SIpH,GTT,SITT
1,0,0,1.4,7.1,1.8,3.5
1,1,0.5,1.4,7.1,1.8,3.5
1,2,2,1.4,7.1,1.8,3.5
1,3,5,1.4,7.1,1.8,3.5
2,0,0,1.5,7.5,0.7,2.5
2,1,0.5,1.5,7.5,0.7,2.5
2,2,2,1.5,7.5,0.7,2.5
2,3,5,1.5,7.5,0.7,2.5")
添加ph
data$ph <- ifelse(
data$TIME < data$GTT,
data$GpH,
ifelse (
data$TIME > data$GTT & data$TIME < data$GTT + data$SITT,
data$SIpH,
6
)
)
打印结果
data
ID TIME DV GpH SIpH GTT SITT ph
1 1 0 0.0 1.4 7.1 1.8 3.5 1.4
2 1 1 0.5 1.4 7.1 1.8 3.5 1.4
3 1 2 2.0 1.4 7.1 1.8 3.5 7.1
4 1 3 5.0 1.4 7.1 1.8 3.5 7.1
5 2 0 0.0 1.5 7.5 0.7 2.5 1.5
6 2 1 0.5 1.5 7.5 0.7 2.5 7.5
7 2 2 2.0 1.5 7.5 0.7 2.5 7.5
8 2 3 5.0 1.5 7.5 0.7 2.5 7.5