根据R中另一个向量的索引更改df列中的值

时间:2016-02-25 15:43:34

标签: r

我有一个看起来像这样的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

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以使用数据框中的列作为向量的索引

df[,1]=period[df[,1]]