> str(mylist)
List of 50
$ : logi [1:14] 0.2 0.3 0.2 ...
$ : logi [1:14] 0.1 0.3 0.6 ...
$ : logi [1:14] 0.2 0.9 0.1 ...
Run Code Online (Sandbox Code Playgroud)
我想转换(或写出)mylist14个带昏暗的矩阵5 10
或带有暗淡的数组5 10 14
将根据这些数据绘制一个图:
library(ggplot2)
mtcars %>%
gather(-mpg, key = "var", value = "value") %>%
ggplot(aes(x = value, y = mpg)) +
geom_point() +
facet_wrap(~ var, scales = "free") +
theme_bw()
Run Code Online (Sandbox Code Playgroud)
例如,如何更改面板标题的灰色
添加图例
set.seed(123)
B = matrix( c(5, 3, 3, 1, 5, 1,3,1,NA,NA), nrow=5, ncol=2)
m1<-matrix(nrow=5,ncol=2,data=runif(10))
m2<-matrix(nrow=5,ncol=2,data=runif(10))
m2[1,2]=NA; ml <- list(m1, m2)
ind <- sapply(unique(c(B)), function(x) which(B == x, arr.ind = TRUE))
re <- lapply(ind, function(x) lapply(ml, function(y) y[x]))
res=lapply(re, function(x) c(t(do.call(cbind, x))))
Run Code Online (Sandbox Code Playgroud)
但我不知道哪个对应哪个.例如:res[[1]]代表5, 3, or 1 in B什么?有没有办法t从B的通信类(数字)中命名输出colms ?
我有两个列表,我想让它们保持一致NA.放置NA每当两个列表中的一个中存在NA而不更改列表结构中的任何其他内容时.
set.seed(123)
m1 <- matrix(nrow=2,ncol=2,data=runif(4))
m1[1,1] <- NA
m2 <- matrix(nrow=2,ncol=2,data=runif(4))
m2[1,2] <- NA
lis <- list(m1, m2)
m1 <- matrix(nrow=2,ncol=2,data=runif(4))
m2 <- matrix(nrow=2,ncol=2,data=runif(4))
m2[2,1] <- NA
bis <- list(m1, m2)
Run Code Online (Sandbox Code Playgroud)
我试过这个但没有成功 bis[is.na(lis)]=NA
期望的输出:
> lis
[[1]]
[,1] [,2]
[1,] NA 0.9568333
[2,] 0.4566147 0.4533342
[[2]]
[,1] [,2]
[1,] 0.9404673 NA
[2,] 0.0455565 NA
> bis
[[1]]
[,1] [,2]
[1,] NA 0.9568333
[2,] 0.4566147 0.4533342
[[2]]
[,1] [,2]
[1,] 0.6775706 NA
[2,] 0.5726334 NA
Run Code Online (Sandbox Code Playgroud) 在我的真实数据中,我得到了 warning number of columns of result is not a multiple of vector length (arg 1),虽然我的列表中有一个唯一数量的cols,当我使用时do.call("rbind"
我想尝试一些与do.call(rbind,list)产生相同输出的其他东西,以检查问题在我的列表中是否存在.
例
n = c(2, 3, 5,4)
n1 = c(2, 7, 4,6)
n2 = c(NA, NA, NA,NA)
x = list(n, n1, n2)
dat <- do.call("rbind", x)
Run Code Online (Sandbox Code Playgroud)
我试过这个:
df=matrix(as.numeric(unlist(x)), nrow= 3)
Run Code Online (Sandbox Code Playgroud)
但
identical(dat,df)
> identical(dat,df)
[1] FALSE
Run Code Online (Sandbox Code Playgroud)
PS:我不想改变 class or str of my list
对于这个文件:
dat=structure(list(V1 = c("1901-01-16", "1901-01-16", "1901-02-15",
"1901-02-15", "1901-03-16", "1901-03-16"), V4 = c(12.5, 10, 13.1,
30, 12.8, 5)), row.names = c(NA, 6L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
我想删除第 2,4,6,8 行,直到最后,并用 01 输出替换 1901-01- 之后的任何内容:
1901-01-01 12.5
1901-02-01 13.1
1901-03-01 12.8
Run Code Online (Sandbox Code Playgroud) 我想删除此列表中仅包含NA的所有元素:
List_data <- list("Green", "Yellow", c(NA,NA,NA), TRUE, 51.2)
Run Code Online (Sandbox Code Playgroud) 假设我有一个列表:
set.seed(123)
n <- 4
lis <- list(
m1 = matrix(nrow=n,ncol=n,data=sample(c(NA, 1:10), n*n, TRUE)),
m2 = matrix(nrow=n,ncol=n,data=sample(c(NA, 1:10), n*n, TRUE))
)
Run Code Online (Sandbox Code Playgroud)
我想知道我们在这份清单中有多少NA(NaN)?
我有一个数据框pr和一个向量f11
pr <- structure(list(value = c(21, 4, 75,
14), site = c("ra", "ce", "ze",
"ste")), row.names = c("1",
"2", "3", "4"), class = "data.frame")
f11 <- c(ze = 54, ra = 7,ce = 63, ste = 36)
Run Code Online (Sandbox Code Playgroud)
我想为每个站点提供此输出(站点的顺序并不重要):
value site
(21-7)/100 re
(4-63)/100 ce
(75-54)/100 ze
(14-36)/100 ste
Run Code Online (Sandbox Code Playgroud)