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

質問:

上記は、別の 4 つのデータセットを含む棒グラフとして R でプロットしようとしているデータ セットです。他の 4 つは V1 に実際のデータがありますが、これは未定義の列を示すデータセットです。Rがこのデータセットを無視できるようにする何かを書くのを手伝ってくれる人はいますか? たとえば、4 つのデータセットがあり、そのうちの 2 つに「未定義」が含まれている場合、R はそれらを無視し、2 つのビンのみをプロットしますか? 現在、R は各 Undefined を高さ 1 のビンとしてプロットしています。誰かがこのビンを完全に取り除くのを助けることができれば、それは素晴らしいことです。

ここに私の問題の写真があります:

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 に答える