我想找到矩阵行最大值的列而忽略NA.例如,
set.seed(1)
a <- matrix(runif(15), ncol=3)
a[a<.3] <- NA
a[5,] <- NA
Run Code Online (Sandbox Code Playgroud)
那是:
> a
[,1] [,2] [,3]
[1,] NA 0.898 NA
[2,] 0.372 0.945 NA
[3,] 0.573 0.661 0.687
[4,] 0.908 0.629 0.384
[5,] NA NA NA
Run Code Online (Sandbox Code Playgroud)
可以使用max以下方法获得忽略NA的行最大值:
> apply(a, 1, max, na.rm=T)
[1] 0.898 0.945 0.687 0.908 -Inf
Run Code Online (Sandbox Code Playgroud)
我正在寻找这些最大值的列位置,但max.col仅适用于没有任何NA的行.
> max.col(a, ties.method="first")
[1] NA NA 3 1 NA
Run Code Online (Sandbox Code Playgroud)
如何找到具有一些非缺失值的行的(第一个)最大化列?即,类似于:
[1] 2 2 3 1 NA
Run Code Online (Sandbox Code Playgroud) 这个问题有两个部分,一个是一般性的,另一个是具体的案例:
R 中是否有一个主题或模板来生成与“经济学人”杂志上发布的图表具有相似外观的图?其他上下文中的示例包括:从 python为 python 和set scheme economistStata创建“经济学人”样式的图形。
具体来说,ggplot2生成类似于下面示例的组条形图的语法(例如 in )是什么,带有粗线的彩色形状标记跨越它们之间的范围(左图),或矩形置信区间(右图) ?
资料来源:https : //www.economist.com/graphic-detail/2020/04/01/covid-19-may-be-far-more-prevalent-than-previously-thought
并行任务,我需要拆分大data.table大致相等的部分,同时保持由列deinfed组,id。假设:
N 是数据的长度
k 是的不同值的数量 id
M 是所需零件的数量
这个想法是M << k << N,所以除以id不好。
library(data.table)
library(dplyr)
set.seed(1)
N <- 16 # in application N is very large
k <- 6 # in application k << N
dt <- data.table(id = sample(letters[1:k], N, replace=T), value=runif(N)) %>%
arrange(id)
t(dt$id)
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16]
# [1,] "a" "b" "b" "b" "b" "c" "c" "c" "d" "d" "d" …Run Code Online (Sandbox Code Playgroud) 我将如何根据值轻推文本:
例如,
library(ggplot2)
theme_set(theme_bw())
# Data Prep
data("mtcars") # load data
mtcars$`car name` <- rownames(mtcars) # create new column for car names
mtcars$mpg_z <- round((mtcars$mpg - mean(mtcars$mpg))/sd(mtcars$mpg), 2) # compute normalized mpg
mtcars$mpg_type <- ifelse(mtcars$mpg_z < 0, "below", "above") # above / below avg flag
mtcars <- mtcars[order(mtcars$mpg_z), ] # sort
mtcars$`car name` <- factor(mtcars$`car name`, levels = mtcars$`car name`) # convert to factor to retain sorted order in plot.
# Diverging Barcharts
ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
geom_bar(stat='identity', …Run Code Online (Sandbox Code Playgroud) 我需要加载社交网络数据,其中每个用户都有一个未知且可能有大量的朋友,存储为以下格式的文本文件:
UserId: FriendId1, FriendId2, ...
1: 12, 33
2:
3: 4, 6, 10, 15, 16
Run Code Online (Sandbox Code Playgroud)
到两列data.frame:
UserId FriendId
1 1 12
2 1 33
3 3 4
4 3 6
5 3 10
6 3 15
7 3 16
Run Code Online (Sandbox Code Playgroud)
你怎么会在R?
阅读,填充和重塑是低效的,因为它需要在内存中保留许多列NA.