1

数据集:

    V1          V2
1   Undefined   E1
2   Undefined   E2
3   Undefined   E3
4   Undefined   E4
5   Undefined   E5
6   Undefined   E6
7   Undefined   E7
8   Undefined   E8

问题:

上面是一个数据集,我试图在 R 中绘制为带有另外 4 个数据集的条形图。其他 4 个在 V1 中有实际数据,但这是数据集显示未定义的列。谁能帮我写一些东西让 R 忽略这个数据集?例如,如果我有 4 个数据集,其中 2 个有“未定义”,R 会忽略它们,只绘制 2 个 bin?现在,R 正在将每个 Undefined 绘制为高度为 1 的 bin。如果有人可以帮助完全摆脱这个 bin,那就太好了。

这是我的问题的图片:

http://oi40.tinypic.com/27zx7oo.jpg

我想完全摆脱每组中的第 4 个小节。请注意,我不能将其设置为 0,因为这是不准确的。我想完全避免它。

下面是我的代码:

k_o_asdf <- read.delim("/Users/asdfman/Combinations/k_open/asdf.state", header=F)
m_o_asdf <- read.delim("/Users/asdfman/Combinations/m_open/asdf.state", header=F)
k_c_asdf <- read.delim("/Users/asdfman/Combinations/k_closed/asdf.state", header=F)
m_c_asdf <- read.delim("/Users/asdfman/Combinations/m_closed/asdf.state", header=F)

d <- data.frame(row.names=c("E1", "E2", "E3", "E4", "E5", "E6", "E7", "E8"), K.Open = c(k_o_asdf$V1), M.Open = c(m_o_asdf$V1), K.Closed = c(k_c_asdfV1), M.Closed = c(m_c_asdf$V1))

d <- do.call(rbind, d)
barplot(d, beside = TRUE,ylim=c(0,2), legend.text = rownames(d), 
    args.legend = list(x = "topleft", bty="n"))

非常感谢您的帮助!如果有任何不清楚的地方,请告诉我!

4

1 回答 1

1

一些建议:

您可以使用row.names=paste0("E", 1:8)而不是row.names=c("E1", "E2", "E3", "E4", "E5", "E6", "E7", "E8").

您可以使用as.data.frame(t(d))而不是do.call(rbind, d).

要删除“未定义”列,请尝试以下操作:

d <- d[,!sapply(d, function(x)all(x=="Undefined"))]

在转置之前。

于 2013-09-26T00:51:24.450 回答