更新R中的data.frame

更新R中的data.frame,r,R,数据帧“df” 将基于向量进行更新。向量是从某个函数调用返回的,每次都可能包含不同数量的列,但向量列始终存在于data.frame“df”中 那么data.frame df应该如下所示 st1 st2 st3 st4 st5 1 0 0 2 0 4 2 0 0 0 0 0 3 0 0 0 0 0 4 0 0 0 0 0 5 0 0 0 0 0 6 0 0 0 0 0 循环的每一次迭代

数据帧“df”

将基于向量进行更新。向量是从某个函数调用返回的,每次都可能包含不同数量的列,但向量列始终存在于data.frame“df”中

那么data.frame df应该如下所示

  st1 st2 st3 st4 st5
1  0   0   2   0   4
2  0   0   0   0   0
3  0   0   0   0   0
4  0   0   0   0   0
5  0   0   0   0   0
6  0   0   0   0   0

循环的每一次迭代都对应于data.frame df中的一行。

类似的操作应该可以工作:

for (i in 1:10)
{
  x<-funcall()
  print(x)
  #           time.chosen
  #st3        2
  #st5        4
  // Update data.frame "df"
}
      df[iter,rownames(vector)] <- vector$time.chosen

df[iter,rownames(vector)]像这样的东西应该有用:

      df[iter,rownames(vector)] <- vector$time.chosen

df[iter,rownames(vector)]for
循环中的每个迭代
i
是否对应于数据帧中的一行?根据您提供的结果,您是否可以提供一个示例,说明您希望更新后的数据框是什么样子?您是否可以给出一个具体的示例,说明您需要什么?df中是否预先存在列?我已经编辑了我的问题。for
循环中的每个迭代
I
是否对应于数据框中的一行?根据您提供的结果,您是否可以提供一个示例,说明您希望更新后的数据框是什么样子?您是否可以给出一个具体的示例,说明您需要什么?df中是否预先存在这些列?我已经编辑了我的问题。
      df[iter,rownames(vector)] <- vector$time.chosen
vector = data.frame(time.chosen= c(1,2))
rownames(vector) <- paste('t',c(2,3),sep='')
  time.chosen
t2           1
t3           2

df <- as.data.frame(diag(5)*0)
colnames(df) <- paste('t',c(1:5),sep='')


iter <- 1
df[iter,rownames(vector)] <- vector$time.chosen

t1 t2 t3 t4 t5
1  0  1  2  0  0
2  0  0  0  0  0
3  0  0  0  0  0
4  0  0  0  0  0
5  0  0  0  0  0

 iter <-4
 df[iter,rownames(vector)] <- vector$time.chosen

 t1 t2 t3 t4 t5
1  0  1  2  0  0
2  0  0  0  0  0
3  0  0  0  0  0
4  0  1  2  0  0
5  0  0  0  0  0