1

我有下表:

[1,]    434    359
[2,]   8012   8217
[3,]   1254   1360
[4,]     39    112
[5,]   4322   4199
[6,]    595   2737
[7,]  12984  13112
[8,]   5597   4287

我想绘制每行最小值的直方图。我知道R中的 hist() 函数,但我不知道如何仅绘制两列之间的最小值。

另外,我尝试安装 ggplot2 但它不起作用,所以这对我来说不是一个真正的选择。

4

3 回答 3

3

?pmin

hist(pmin(x[,1], x[,2]))
于 2013-06-20T14:55:53.590 回答
1
some.table <- cbind(c(434,8012,1254,39,4322,595,12984,5597),c(359,8217,1360,112,4199,2737,13112,4287))
hist(apply(some.table,1,min),breaks=10)
于 2013-06-20T14:51:50.773 回答
1

如果要绘制每行的最小值,则不需要使用 hist 而只需使用条形图。您有两种解决方案,一种是标准解决方案,另一种是 ggplot 解决方案。

标准一:

df <- data.frame(v1 = c(434,8012,1254,39,4322,595,12984,5597), v2 = c(359,8217,1360,112,4199,2737,13112,4287))
barplot(apply(df,1,min))

ggplot 一:

library("ggplot2")
df$min <- apply(df, 1, min)
ggplot(data = df, aes(x = 1:8, y = min)) + geom_bar(stat="identity")

apply() 函数将统计信息应用于数据帧的行或列。

于 2013-06-20T15:19:42.403 回答