質問

私もトラブル割出します。フレーム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

んでいるの unlistnames(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]

データフレーム、利用nrowncolの形状を取得することができます。

の編集:

あなたは、リスト内の欠落値からの結果というあなたのインデックスに非論理値を持っているように、私の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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top