我已经看到了将一个矩阵乘以另一个矩阵的答案 . 但我有一个单一的矩阵,完全数字 . 举个例子:
matrix = read.table(text =
"ID Mult t1 t2 t3 t4 t5
4 0.164 10 20 30 40 50
16 0.581 5 10 5 10 5
42 0.008 16 17 18 19 20
91 0.328 20 20 20 20 20
103 0.108 103 42 56 84 61",
h = T)
我想分别乘以乘法器的 t1
乘以 t5
,并将结果放在矩阵的新列中 .
我会逐列完成,但事实上我有超过200列!
希望有人能提出更简单的解决方法 .
2 回答
你可以这样做:
df[,grepl("^t.*",colnames(df),perl = T)]
子集df
只能以"t"开头的列df[,c(paste0(colnames(df[,grepl("^t.*",colnames(df),perl = T)]),"bis"))]
获取前一个子集的colnames()
,并使用paste0()
与"bis"或任何字符串连接它们以指示更改 . 这将创建填充乘法结果的新列 .有些人不喜欢循环,但我有时会这样做 . 这是其中一次:)