2014-12-26 9 views

cevap

27

Bu hatalar, var olmayan bir değişkene assign a value yapmayı denediğinizde ya da R name olarak davranamadığında ortaya çıkar. (A adı bir değişken adı tutan bir değişken türüdür.)

deneyin hataları yeniden Kime: (? Üç hataların hangi NULL <- 1 getirileri tahmin edebilir)

1:2 <- 1 
## Error in 1:2 <- 1 : target of assignment expands to non-language object 

1 <- 1 
## Error in 1 <- 1 : invalid (do_set) left-hand side to assignment 

mean() <- 1 
## Error in mean() <- 1 : invalid (NULL) left side of assignment 

"x" <- 1 # same as x <- 1 
:

R A az bilinen özelliği bir dizeye değer atayabilirsiniz olmasıdır

Örneğin, paste kullanarak daha karmaşık bir ifade kullanarak dizeyi oluşturmaya ve oluşturmaya çalışırsanız bu işe yaramaz.

paste0("x", "y") <- 1 
## Error: target of assignment expands to non-language object 

assign kullanımı

Create a variable name with "paste" in R? ve
How to name variables on the fly?

Bu çözüm Bkz:

assign(paste0("x", "y"), 1) 

ortak senaryosu, bu c'de Omes up, veri çerçevelerinin sütunlarını atamaya çalışırken. Genellikle bir girişim birlikte paste() atamanın sol yapılacaktır yani

paste0("my_dataframe$","my_column") <- my_value 

Genellikle optimal çözüm burada değilget veya assign başvurmak ancak verilerin çerçeve sütunları referans verebilmek hatırlamaktır [ veya [[ operatörü kullanılarak karakter değişkenler tarafından: Benzer

x <- "my_column" 
my_dataframe[,x] <- value #or... 
my_dataframe[[x]] <- value 

, sensonucuna atayamazsınız.

get("x") <- 1 
## Error in get("x") <- 1 : 
## target of assignment expands to non-language object 

çözeltisi yerine işlevi ile bir araya get daha karmaşık bir durum ile, ya

assign("x", 1) 

ya da sadece

"x" <- 1 

Using get() with replacement functions fırsatlar olduğunu.


Ayrıca bkz Cevapları detay Assignment in R language atama, Subset Assignment özellikle Ar dil tanımının açıklaması ile ilgili arcana bazılarıdır.