0
dput(x)
structure(c("2005-01-01:  1  ", "2005-01-02:  1  ", "2005-01-03:  1  ", 
"2005-01-04:  1  ", "2005-01-05:  1  ", "2005-01-06:  1  ", "(Other)   :724  ", 
"Min.   :  1.700  ", "1st Qu.:  3.062  ", "Median :  4.345  ", 
"Mean   :  6.267  ", "3rd Qu.:  7.435  ", "Max.   : 22.100  ", 
"NA's   :666.000  ", "Min.   :  0.2490  ", "1st Qu.:  0.6182  ", 
"Median :  1.0500  ", "Mean   :  2.2679  ", "3rd Qu.:  2.7825  ", 
"Max.   : 10.8000  ", "NA's   :666.0000  ", "Min.   :101  ", 
"1st Qu.:101  ", "Median :101  ", "Mean   :101  ", "3rd Qu.:101  ", 
"Max.   :101  ", NA), .Dim = c(7L, 4L), .Dimnames = list(c("", 
"", "", "", "", "", ""), c("Dat", "Var1", "Var2", "Name")), class = "table")

私はこれをやろうとしています:

x$Var1 

このエラーが発生します:

Error in x$Var1 : $ operator is invalid for atomic vectors

何か考え、私がしていることはここで間違っていますか?

4

3 に答える 3

3

ここでは行間を少し読んでいますが、各変数に必要な種類のデータを取得するには、次のようなことを行う方がよい場合があります。

# create some test data
> test <- data.frame(Dat=1:10,Var1=1:10)
> result <- lapply(test,summary)
> result
$Dat
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1.00    3.25    5.50    5.50    7.75   10.00 

$Var1
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1.00    3.25    5.50    5.50    7.75   10.00 

これにより、次のことが可能になります。

> result$Var1
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1.00    3.25    5.50    5.50    7.75   10.00 
于 2013-01-15T03:28:18.053 に答える
2

これは機能します:

> x[,'Var1']

"Min.   :  1.700  " "1st Qu.:  3.062  " "Median :  4.345  " "Mean   :  6.267  " "3rd Qu.:  7.435  " 

"Max.   : 22.100  " "NA's   :666.000  "

簡単な例:

y <- rep(letters[1:3], each=10)
table(y)
## y
##  a  b  c 
## 10 10 10 

table(y)$a
## Error in table(y)$a : $ operator is invalid for atomic vectors
于 2013-01-15T03:03:33.457 に答える
0

マシューは、Rがあなたを誤解させる実体ではなく、あなたに誤解を招くアドバイスを与えています。エラーメッセージは正確であり、注意を払えば貴重な教訓を学ぶことができます。Rテーブルは実際には行列です。それらはis.matrixからTRUEを返し、通常のすべてのアクセスメソッドが機能します。演算子はリスト用です($「dataframe」はサブクラスですが、「matrix」はサブクラスではありません)。彼は、行列が名前付き次元インデックスによってアクセスに応答するという事実を使用したアクセスメソッドを提供したことに注意してください。

于 2013-01-15T04:49:05.873 に答える