我有一个如下所示的数据框:
X Y
1 3
1 7
1 9
2 12
2 4
2 8
3 11
3 3
3 5
我想创建一个新变量 Z,如果 X = 1,则 = 0.25;如果 X = 2,则 = 0.75;如果 X = 3,则 = 0.95。
我试过下面的代码,它创建了一个变量 Z,然后在 X 上循环,检查 X 是否是某个值,然后将 Z 设置为相应的正确值。例如:
data$Z <- 0
for (i in 1:length(data$X)){
if (data$X[i]==1) {data$Z <- 0.25)
if (data$X[i]==2) {data$Z <- 0.50)
if (data$X[i]==2) {data$Z <- 0.95)
}
问题是由于某种原因,条件触发器在这段代码中没有被触发。如果我只用第一个 if 语句运行它,所有的 Z 都设置为 0.25。只有前两个,它们都是 0.50,等等。
关于发生了什么的任何线索?