我有一个数据帧,我试图将数据帧中的每一列除以最后一行值:
A <- c(1:10)
B <- c(2:11)
C <- c(3:12)
df1 <- data.frame(A,B,C)
df2 <- df1/df1[10,]
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误.我很想知道我做错了什么.
Señ*_*r O 11
data.frames 不适用于那些类型的操作.
data.frame(lapply(df1, function(X) X/X[10]))
Run Code Online (Sandbox Code Playgroud)
应该做的伎俩.或者使用矩阵代替.
df1 = as.matrix(df1)
> t(t(df1)/df1[10,])
A B C
[1,] 0.1 0.1818182 0.2500000
[2,] 0.2 0.2727273 0.3333333
[3,] 0.3 0.3636364 0.4166667
[4,] 0.4 0.4545455 0.5000000
[5,] 0.5 0.5454545 0.5833333
[6,] 0.6 0.6363636 0.6666667
[7,] 0.7 0.7272727 0.7500000
[8,] 0.8 0.8181818 0.8333333
[9,] 0.9 0.9090909 0.9166667
[10,] 1.0 1.0000000 1.0000000
Run Code Online (Sandbox Code Playgroud)