将列表中的每一行数据帧除以相应的矩阵值
Dividing each row of data frames within a list by a corresponding matrix value
我有一个包含 3 个数据框的列表,每个框有 3 行 (op2
) 和一个矩阵 (rep_totals
)。每个数据框的每一行都与我矩阵中的一个值相关,趋势是:op2[[i]][j,]
对应于 rep_totals[i,j]
我想将 op2
中每个数据帧的每一行除以其在 rep_total
s 中的相应值,以生成包含 3 个新数据帧 (gt_freqs
) 的列表他们的调整值。
这是我尝试过的:
x = matrix(5,3,5) # creating example
x = as.data.frame(x)
op2 = list(x,x,x)
rep_totals = matrix(5,3,3)
gt_freqs <- replicate(length(op2), matrix(0, 3, 5), simplify = FALSE)
for(i in seq_along(op2)) for(j in seq_along(op2[[1]][1:3,])) gt_freqs[[i]] <- op2[[i]][j,]/rep_totals[i,j]
因此在此示例中,预期输出将是 3 个与 op2
大小相同的数据帧,只是值将全部调整为 1
在此先感谢您的帮助!
我们可以使用Map
Map(`/`,op2, asplit(rep_totals, 1))
使用 for
循环,它将是
for(i in seq_along(op2)) get_freqs[[i]] <- op2[[i]]/rep_totals[i,]
我有一个包含 3 个数据框的列表,每个框有 3 行 (op2
) 和一个矩阵 (rep_totals
)。每个数据框的每一行都与我矩阵中的一个值相关,趋势是:op2[[i]][j,]
对应于 rep_totals[i,j]
我想将 op2
中每个数据帧的每一行除以其在 rep_total
s 中的相应值,以生成包含 3 个新数据帧 (gt_freqs
) 的列表他们的调整值。
这是我尝试过的:
x = matrix(5,3,5) # creating example
x = as.data.frame(x)
op2 = list(x,x,x)
rep_totals = matrix(5,3,3)
gt_freqs <- replicate(length(op2), matrix(0, 3, 5), simplify = FALSE)
for(i in seq_along(op2)) for(j in seq_along(op2[[1]][1:3,])) gt_freqs[[i]] <- op2[[i]][j,]/rep_totals[i,j]
因此在此示例中,预期输出将是 3 个与 op2
大小相同的数据帧,只是值将全部调整为 1
在此先感谢您的帮助!
我们可以使用Map
Map(`/`,op2, asplit(rep_totals, 1))
使用 for
循环,它将是
for(i in seq_along(op2)) get_freqs[[i]] <- op2[[i]]/rep_totals[i,]