更新R中的data.frame
数据帧“df” 将基于向量进行更新。向量是从某个函数调用返回的,每次都可能包含不同数量的列,但向量列始终存在于data.frame“df”中 那么data.frame df应该如下所示更新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 循环的每一次迭代
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