割り出します。フレームを使用の配列TRUEsとFALSEs
-
24-09-2019 - |
質問
私もトラブル割出します。フレームR.私はR初心者です。してい data.frame
という d
る35512列77さい。いリストと呼ばれ rd
含有する35512ます。いすべての列の d
に対応する項目 rd
以下100です。このようになっている:
# just to prove I'm not crazy
> length(colnames(d))
[1] 35512
> length(rownames(d))
[1] 77
> length(rd)
[1] 35512
# find all the elements of rd less than 100 (+ unnecessary faffing?)
> i <- unlist(rd<100)
> names(i) <- NULL
# try to extract all the elements of d corresponding to rd < 100
> d <- d[,i]
Error in `[.data.frame`(d, , i) : undefined columns selected
んでいるの unlist
や names(i) <- NULL
ももいろん真剣に被害妄想.誰でもできるので助かの地獄このエラーメッセージです。
場合で、 rd
変数を作成するには、以下の
rd = lapply(lapply(d, range), diff)
ると思うの差の範囲の各カラムの d
.
P.S.ボーナスポ方で教えてコマンドの形状データです。フレーム以外の照会に行-カラム名になってしまいます
編集:からのメッセージ rd
次のように記述されています。
> rd[1:3]
$`10338001`
[1] 7198.886
$`10338003`
[1] 4748.963
$`10338004`
[1] 3173.046
きっっfaffing, i
以下のようなものです:
> i[7:10]
[1] FALSE FALSE FALSE TRUE
解決
あなたはこれを試したことがあります:
d[,rd < 100]
ここで自己完結型の例です。
d <- data.frame(matrix(1:100, ncol=10))
rd <- as.list(1:10)
d[,rd < 5]
データフレーム、利用nrow
とncol
の形状を取得することができます。
の編集:の
あなたは、リスト内の欠落値からの結果というあなたのインデックスに非論理値を持っているように、私のNA
の質問へのご回答に基づいて、それが聞こえます。行うための最善のことは、まずあなたが欠落している値を処理する方法を決定することです。
is.na
機能を(ここで私は上から私の例を拡張)を使用して、それらに対処
rd[[3]] <- NA
d[,rd < 5]
# => Error in `[.data.frame`(d, , rd < 5) : undefined columns selected
これに対処するために、I 0(それは、それぞれの列が最終data.frameに含まれることを意味する)にそのNA値を設定します
rd[is.na(rd)] <- 0
d[,rd < 5]
あなたはNA
値をどのように処理するかを自分で決める必要があります。
他のヒント
のボーナスQ、"形状"データフレームまたはマトリクスの使用"dim"コマンドを実行します。
A = matrix( ceiling(10*runif(40)), nrow=8)
colnames(A) = c("col1", "col2", "col3", "col4", "col5")
df = data.frame(A)
b = ceiling(100*runif(5))
ndx = b < 50
result = df[,ndx] # just the columns of df corresponding to b < 50
所属していません StackOverflow