r - 如何将列表中的列乘以R中的常数
问题描述
我已经完成了一个 tibble 的 PCA,结果df
我得到了这个列表res.pca
。
我想将CP2
inres.pca$rotation
和 in的列乘以res.pca$x
-1。
我不知道如何将常量乘以列表的元素。
library(tidyverse)
set.seed <- 1234
df <- tibble(a = runif(10),
b = runif(10),
c = runif(10),
d = runif(10),
e = runif(10),
f = runif(10))
res.pca <- prcomp(df, scale = TRUE)
# How to multiply column PC2 by -1 ?
res.pca$rotation
#> PC1 PC2 PC3 PC4 PC5 PC6
#> a -0.53522848 0.01623546 -0.17683875 0.53424822 -0.57591012 0.2547574
#> b 0.09345152 -0.10070446 -0.97591986 -0.09645054 0.06631633 -0.1224961
#> c -0.60060502 0.19351430 0.03334125 -0.04015348 0.18352003 -0.7519457
#> d -0.35361738 0.60631081 -0.11196246 -0.27535181 0.36203644 0.5365793
#> e 0.34230164 0.42828520 -0.04659627 0.74868543 0.34975861 -0.1198716
#> f 0.31914768 0.63332948 -0.02213681 -0.25945200 -0.61387997 -0.2288767
res.pca$x
#> PC1 PC2 PC3 PC4 PC5 PC6
#> [1,] -0.6358524 0.5828874 -1.38893192 0.8278318 0.45765671 0.36713422
#> [2,] 0.2867744 0.9462777 -0.02085629 -0.1507573 0.07456675 -0.85216056
#> [3,] 2.5912151 -1.3097803 -0.68040264 0.1440942 0.30874470 0.04728797
#> [4,] -0.9248741 -2.0135367 -0.46770160 -0.5386261 -0.08233173 -0.24589384
#> [5,] -1.7083258 0.1834963 0.32759227 1.0044239 0.49562619 -0.11892058
#> [6,] 0.4594589 2.1631258 0.32585525 0.4079981 -0.46661003 0.08308276
#> [7,] -1.5698588 0.6305786 -1.05203941 -1.6090313 -0.26425202 0.21223261
#> [8,] -1.2245220 -0.6453317 2.13533845 -0.3398981 0.22386580 0.23298046
#> [9,] 0.2014890 -1.0794984 0.10611970 1.0145475 -0.94717249 0.08065278
#> [10,] 2.5244957 0.5417812 0.71502618 -0.7605828 0.19990613 0.19360418
Created on 2021-07-13 by the reprex package (v2.0.0)
解决方案
用于lapply
循环提取的list
元素'rotation','x',得到'PC2'(matrix
),乘以-1,并返回元素即x(lambda函数)
res.pca[c("rotation", "x")] <- lapply(res.pca[c("rotation", "x")],
function(x) {x[, "PC2"] <- x[, "PC2"] * -1
x})
推荐阅读
- sql - 在 SQL Server 中为产品层次结构创建摘要报告
- react-native - 从登录屏幕导航到 RN 上的主页
- javascript - 制表符 - 有没有办法只打印选定的行
- python-3.x - 如何用给定的峰值绘制高斯曲线?
- javascript - 使用javascript的实际“最后更新”日期
- c++ - 派生类继承getter,找不到返回正确值的方法
- sql-server - 如何在三个表上执行复杂连接
- gams-math - gams解决lst文件太大打不开
- python - 没有明显原因的python模块没有正确安装
- javascript - 如何使用anime.js 支持供应商前缀