我有一个看起来像这样的df
x1 <- rep(1,10)
x2 <- rep(2,10)
period[1:10] <- c(1.03304364774925, 1.22850285601178, 1.46094433717037, 1.73736540038594,
2.06608729549851, 2.45700571202355, 2.92188867434074, 3.47473080077187,
4.13217459099701, 4.91401142404711)
df <- rbind(x1, x2)
我要做的是将df [1]的值替换为period的index 1中的值。
所以if df[1] == 1 #change to period[1]
if df[2]==2 #change to period[2]
...等。实际上,df [1:65] = 1且df [66:70] = 2。
在实际数据中,df
中的数字从1到65,而句点是长度为65的向量。
我尝试了一些循环,如:
for (i in 1:nrow(df)){
df[1] <- 1/period[i]
}
但显然在65岁之后,你只得NA
。
我该怎么做?
答案 0 :(得分:2)
您可以使用数据框中的列作为向量的索引
df[,1]=period[df[,1]]