2013-06-20 15 views
6

テーブル関数が削除された変数を見つけるのはなぜですか?テーブル関数が削除された変数を見つける理由

Dog <- c("Rover", "Spot") 
Cat <- c("Scratch", "Fluffy") 

Pets <- data.frame(Dog, Cat) #create a data frame with two variables 
names(Pets) 
# [1] "Dog" "Cat" 

#rename Dog to a longer name 

names(Pets)[names(Pets)=="Dog"] <- "Dog_as_very_long_name" 
Pets$Dog <- NULL # delete Dog 
names(Pets) 
#[1] "Dog_as_very_long_name" "Cat" #the variable dog is not in the data set anymore 

table(Pets$Dog) #Why does the table function on a variable that was deleted 


# Rover Spot 
# 1  1 
+2

タグに言語を入力する必要があります。タイトルには場所がありません。 – christopher

答えて

11

これは、単に$の特定の用途で発生する部分一致のためです。

これを試してみてください:

> table(Pets$Ca) 

Fluffy Scratch 
     1  1 

あなたがより多くの制御を与える代わりに[[表記を使用。

> table(Pets[["Ca"]]) 
< table of extent 0 > 
> table(Pets[["Ca", exact = FALSE]]) 

Fluffy Scratch 
     1  1 

あなたは部分一致が使用された場合に警告を与えることoptions設定を使用することができます。検討してください:

> options(warnPartialMatchDollar = TRUE) 
> table(Pets$Ca) 

Fluffy Scratch 
     1  1 
Warning message: 
In Pets$Ca : partial match of 'Ca' to 'Cat' 
> table(Pets$Dog) 

Rover Spot 
    1  1 
Warning message: 
In Pets$Dog : partial match of 'Dog' to 'Dog_as_very_long_name' 
関連する問題