例如我有兩個變量a
和b
(實際上實際上超過2個),我可以像c(a,b)<-c(0,0)
那樣爲它們分配值,就像Python中的元組一樣嗎?謝謝。我可以批量分配變量嗎?
回答
有沒有內置的方法來做到這一點 - 你要找的東西非常相似,lists
和R
vectors
- 而不是調用回a
,b
和c
,你再打a[1]
,a[2]
和a[3]
。如果你能夠通過不同的名字叫回這個值,並能夠從同一行中指定他們是很重要的,你可以做一個簡單的函數:
Assign <- function(Names, Values) {
for(i in 1:length(Names)){
assign(Names[i], Values[i], envir=.GlobalEnv)
}}
>A <- c("a", "b", "c", "d")
>B <- c(0,4,2,3)
>Assign(A,B)
>c
#[1] 2
我無法找出一個讓apply
家族解決這個問題的方法不會太複雜 - 也許有人可以幫助我。
'Assign < - function(Names,Values){sapply(seq_along(Names),function(i){assign(Names [i],Values [i],envir = .GlobalEnv)}); invisible() }'不要太複雜 - 只需在索引的向量上使用'sapply'或'lapply'並創建一個匿名函數來完成實際的任務。我把無形的東西放在那裏,使它更好一些。 – Dason
謝謝 - 我從來沒有嘗試過'seq_along' - 似乎是一個真正需要'for'循環的任務的好替代方案,但容易受到循環帶來的不利影響。 –
或'mapply(assign,Names,Values,MoreArgs = list(envir = .GlobalEnv))' – flodel
您可以使用%=%
作爲解釋in this question (你必須複製並粘貼四大功能)
# Example Call; Note the use of g() AND `%=%`
# Right-hand side can be a list or vector
g(a, b, c) %=% list("hello", 123, list("apples, oranges"))
# Results:
> a
[1] "hello"
> b
[1] 123
> c
[[1]]
[1] "apples, oranges"
感謝您的鏈接 - 看起來像這個問題應該可能作爲副本關閉。 – Dason
- 1. 可以局部變量分配嗎?
- 2. Makefile:可以將VPATH變量應用於分配Makefile變量嗎?
- 3. 我們可以分配Javascript變量值到Razor語法變量嗎?
- 4. 我可以批量解密嗎
- 5. 我可以批量登錄網站嗎?
- 6. 我可以從JavaScript內部分配一個jade變量嗎?
- 7. 我可以爲一個變量分配一個靜態類嗎?
- 8. 我可以在Python中分配一個數值變量嗎?
- 9. 我可以同時在VBA中聲明和分配變量嗎?
- 10. 我可以給運算符分配一個變量嗎?
- 11. 什麼變量批量分配給Stdout?
- 12. 可變批量變量
- 13. $ $ idx可以用於變量變量嗎?
- 14. Laravel 5.2:變量可以分類嗎?
- 15. 我可以按變量分組並應用變換嗎?
- 16. 我可以將HTML放入變量嗎?
- 17. 我可以在HTML.PartialRender()中有變量嗎?
- 18. 我可以使用LIMIT和變量嗎?
- 19. 可以避免`eval()`嗎? (在運行時分配變量名稱)
- 20. 你可以分配給父函數中定義的變量嗎?
- 21. UITextView可以通過IB分配一個變量名嗎?
- 22. 柑橘框架 - 可以從響應分配變量嗎?
- 23. 我如何分配PHP變量的值,以JavaScript變量
- 24. 我可以在PHP中使用變量變量,例如$$ var嗎?
- 25. 我可以根據其他變量動態創建變量嗎?
- 26. 我可以使用其他變量訪問類變量嗎?
- 27. Python:我可以在變量中存儲變量名嗎?
- 28. 我可以將php $ _POST變量轉換爲jQuery變量嗎?
- 29. 我們可以用{來聲明變量變量嗎?
- 30. 使用PHP,我可以把變量放在變量裏面嗎?
你懶得去嘗試嗎? – 2012-11-12 18:30:41
不,不能指定這種方式 –
@JackManey是的,我試過但沒有通過。我在問同樣的效果的方式。 – ziyuang