我有一个巨大的数据框,其中包含对几百个人的几个变量的许多时间相关观察。每个人在ID列中都有一个唯一的编号。我将使用下面模拟的数据,其结构类似于我的数据来问我的问题:
set.seed(123)
dat <- data.frame(ID = rep(letters[1:10], each = 10),
time = rep(c(1:10), times = 10),
var1 = rnorm(100))
Run Code Online (Sandbox Code Playgroud)
请注意,在真实数据中,每个 的实际观察次数是不同的ID。假设有几个人(例如,IDs:b、e 和 g)我需要对其进行观察并完全“翻转”或“反转”其顺序,并且仍然保留每个time. 我的意思是(以个人 b 为例)个人 b 在数据框中的第一个观察结果将是“时间间隔”10 而不是“时间间隔”1 的数据。换句话说,数据看起来像这样:
ID time Var1
a 1
a 2
… …
a 10
b 10
b 9
b 8
… …
b 1
c 1
c 2
c 3
c 4
ect...
Run Code Online (Sandbox Code Playgroud)
什么是做到这一点,保持在数据帧中的位置(即,最安全的方式b在间的住宿a和c等..)?
在下面使用 时facet_wrap, 和year都model显示在绘图标签中。
library(tidyverse)
mpg %>%
filter(manufacturer=='audi')%>%
ggplot(aes(cty, hwy)) +
geom_point(aes(col = model)) +
facet_wrap(year~model)
Run Code Online (Sandbox Code Playgroud)
我们已经为点着色model并显示在图例中,因此我们实际上不需要model每个方面标签。model我们怎样才能从标签上删除呢?
我的数据结构如下:
set.seed(123)
dat1 <- data.frame(State = rep(c("NY","MA","FL","GA"), each = 10),
Loc = rep(c("a","b","c","d","e","f","g","h"),each = 5),
ID = rep(c(1:10), each = 2),
var1 = rnorm(200),
var2 = rnorm(200),
var3 = rnorm(200),
var4 = rnorm(200),
var5 = rnorm(200))
Run Code Online (Sandbox Code Playgroud)
我正在为 PCA 使用 FactoMineR 和 factoextra 包。我正在编写以下函数来生成 PCA 的摘要输出和图:
pfun <- function(dat, cols, ncp){
res <- PCA(dat[,cols], scale.unit = T, ncp = ncp, graph = F)
eigs<-round(res$eig, 2)
scree <- fviz_eig(res, addlabels = T)
contribplot<-corrplot(get_pca_var(res)$contrib, is.corr = F)#variable contributions to each pc
cos2plot<-corrplot(pca.vars$cos2, is.corr=F)#quality …Run Code Online (Sandbox Code Playgroud)