我在R studio工作,我有一个数据集,如: (字母代表列名称)
a b c d e f
0 1 3 1 0 1
3 1 0 4 1 2
0 1 0 0 3 4
我想将所有值除以与其列对应的f值。这意味着第一行中的每个值都必须除以1,第二行中的每个值除以2,第三行中的每个值除以4。
我试过这样:
#divide every number through sum variable of their row
my_matched_matrix = as.matrix(my_matched)
#making a vector out of sum row
avector <- as.vector(my_matched['sum'])
#sweep
sweeped <- sweep(mat,avector, `/`)
它给了我这个错误:
Error in dims[MARGIN] : invalid subscript type 'list'
有没有人知道是否有其他方式可以获得我想要的地方?
答案 0 :(得分:1)
这是你要找的吗?
df <- read.table(text = "a b c d e f
0 1 3 1 0 1
3 1 0 4 1 2
0 1 0 0 3 4",
header = TRUE, stringsAsFactors = FALSE
df / df$f
返回:
a b c d e f
1 0.0 1.00 3 1 0.00 1
2 1.5 0.50 0 2 0.50 1
3 0.0 0.25 0 0 0.75 1
如果你想要打印得更好一点,你可以这样做:
x <- df / df$f
format(x, nsmall = 2)
a b c d e f
1 0.00 1.00 3.00 1.00 0.00 1.00
2 1.50 0.50 0.00 2.00 0.50 1.00
3 0.00 0.25 0.00 0.00 0.75 1.00