如何 populate/fill 具有另一个数据框的单元格值的数据框列
How to populate/fill a dataframe column with cell values of another dataframe
我有两个数据框
dataframe 1 有大约百万行..它有两列名为 'row' 和 'columns' 具有另一个数据帧(即数据帧 2)的行和列的索引..
我想从数据帧 2 中提取数据帧 1 中每一行的索引值,这些索引在名为 'row' 和 'columns' 的列中说明。
我使用了一个简单的 for 循环 来得到解决方案,但它很耗时,大约需要 9 分钟,R 中的函数是否有其他方法可以解决这个问题?
for(i in 1:nrow(datafram1)) {
dataframe1$value[i] = dataframe2[dataframe1$row[i],dataframe1$columns[i]]
}
既然你的循环只考虑df1中的行,你可以削减df2上多余的roes然后使用cbind
:
dataframe2 <- dataframe2[nrow(dataframe1),]
df3 <- cbind(dataframe1, dataframe2)
也许你可以试试下面的代码
dataframe1$value <- dataframe2[as.matrix(dataframe1[c("row","columns")])]
您实际上不需要 for 循环来执行此操作。只需使用行名和列名将新列添加到数据框中:
DataFrame1$value <- DataFrame2[DataFrame1$row, DataFrame1$column]
这应该会工作得更快。如果你想尝试不同的方式,你可以尝试将值添加到一个新的向量,然后使用 cbind
将向量连接到数据框。您试图在循环期间更新整个数据帧这一事实很可能会减慢速度。
我有两个数据框
dataframe 1 有大约百万行..它有两列名为 'row' 和 'columns' 具有另一个数据帧(即数据帧 2)的行和列的索引..
我想从数据帧 2 中提取数据帧 1 中每一行的索引值,这些索引在名为 'row' 和 'columns' 的列中说明。
我使用了一个简单的 for 循环 来得到解决方案,但它很耗时,大约需要 9 分钟,R 中的函数是否有其他方法可以解决这个问题?
for(i in 1:nrow(datafram1)) { dataframe1$value[i] = dataframe2[dataframe1$row[i],dataframe1$columns[i]] }
既然你的循环只考虑df1中的行,你可以削减df2上多余的roes然后使用cbind
:
dataframe2 <- dataframe2[nrow(dataframe1),]
df3 <- cbind(dataframe1, dataframe2)
也许你可以试试下面的代码
dataframe1$value <- dataframe2[as.matrix(dataframe1[c("row","columns")])]
您实际上不需要 for 循环来执行此操作。只需使用行名和列名将新列添加到数据框中:
DataFrame1$value <- DataFrame2[DataFrame1$row, DataFrame1$column]
这应该会工作得更快。如果你想尝试不同的方式,你可以尝试将值添加到一个新的向量,然后使用 cbind
将向量连接到数据框。您试图在循环期间更新整个数据帧这一事实很可能会减慢速度。