3

基本的に私はこれを達成したいと思います:

vars <- c(x1, x20, x37, etc)
summary(data[vars])

ただし、変数のリストは非常に長く、変数間にコンマがありません

編集: Data500 個の変数がありvars、選択したいリストです。変数名はパターンに従いません。リストの形式x1 x20 x37 etcは 、つまりスペースで区切られています。このリストは SAS シンタックス ファイルからのものであり、R ワークスペースの一部ではありません。

などの区切り記号で変数を連結する関数を調べましたcat()。しかし、これには最初からオブジェクトが必要です。もう 1 つの方法は、エディターで検索/置換 (スペースからコンマ) を使用することですが、これは汚いハックだと思います。

明らかに、変数リストを定義するときに何かが欠けています。簡単な解決策があるはずです。

4

3 に答える 3

7

これを使って:

data <- data.frame(x1 = rnorm(10), x2 = rnorm(10))
vars <- "x1 x2"
data[unlist(strsplit(vars, ' '))]
于 2012-05-16T15:26:41.373 に答える
2

ワークスペース内の変数の名前になっているように見えますか?

x <- ls()[grep('^x\\d', ls())]

x と含めたい数字で始まるものが他にない場合は、そこに到達する可能性があります。

それらが貼り付けているテキスト文字列または何かである場合、おそらく

x <- scan()

(一般的に、あなたの質問は非常に曖昧でした)

于 2012-05-16T15:54:40.770 に答える
1

ファイルをテキストファイルに入れることができると仮定すると(データの出所がわからないと言うのは難しい):変数をプレーンテキストファイルとして保存します。スキャンを使用してデータファイルにそれらを読み取ります。

df <- read.table("foo.txt", sep=" ")

names(df)次に、;を使用してデータフレームの列に名前を付けることができます。または、使用できる列の名前を含むテキストファイルを取得できる場合

df <- read.table("foo.txt", header=TRUE, sep=" ") 
于 2012-05-16T15:28:27.147 に答える