簡體   English   中英

賦值運算符的函數形式是什么,[< - ?

[英]What is the functional form of the assignment operator, [<-?

是否有賦值運算符的函數形式? 我希望能夠用lapply調用作業,如果這是一個壞主意,我總是很好奇。

編輯:

這是一個玩具示例,顯然有更好的方法可以做到這一點:

假設我有一個data.frames,dat列表,每個都對應一次實驗。 我希望能夠添加一個新列“主題”,並給它一個假名。 我想的方式是這樣的

lapply(1:3, function(x) assign(data.frame = dat[[x]], column="subject", value=x)

輸出可以是修改數據幀的列表,或者修改可以純粹是副作用。

列表起始列表的輸入

list(structure(list(V1 = c(-1.16664504687199, -0.429499924318301,  2.15470735901367, -0.287839633854442, -0.850578353982526, 0.211636723222015,  -0.184714165752958, -0.773553182015158, 0.801811848828454, 1.39420292299319 ), V2 = c(-0.00828185523886259, -0.0215669898046275, 0.743065397283645,  -0.0268464140141802, 0.168027242784788, -0.602901928341917, 0.0740511186398372,  0.180307494696194, 0.131160421341309, -0.924995634374182)), .Names = c("V1",  "V2"), row.names = c(NA, -10L), class = "data.frame"), structure(list(     V1 = c(1.81912921386885, 1.17011641727415, 0.692247839769473,      0.0323050362633069, 1.35816977313292, -0.437475434344363,      -0.270255715332778, 0.96140963297774, 0.914691132220417,      -1.8014509598977), V2 = c(1.45082316226241, 2.05135744606495,      -0.787250759618171, 0.288104852581324, -0.376868533959846,      0.531872044490353, -0.750375220117567, -0.459592764008714,      0.991667163481123, 1.31280356980115)), .Names = c("V1", "V2" ), row.names = c(NA, -10L), class = "data.frame"), structure(list(     V1 = c(0.528912899341174, 0.464615157920766, -0.184211714281637,      0.526909095449027, -0.371529800682086, -0.483772861751781,      -2.02134822661341, -1.30841566046747, -0.738493559993166,      -0.221463545903242), V2 = c(-1.44732101816006, -0.161730785376045,      1.06294520132753, 1.22680614207705, -0.721565979363022, -0.438309438404104,      -0.0243401435910825, 0.624227513999603, 0.276605218579759,      -0.965640602482051)), .Names = c("V1", "V2"), row.names = c(NA,  -10L), class = "data.frame"))

也許我沒有得到它,但正如“R編程的藝術”中所述:

左側不僅僅是標識符(表示變量名稱)的任何賦值語句都被視為替換函數。

所以事實上你總是可以翻譯這個:

names(x) <- c("a","b","ab")

對此:

x <- "names<-"(x,value=c("a","b","ab"))

一般規則只是"function_name<-"(<object>, value = c(...))

編輯評論:

它適用於"太:

> x <- c(1:3)
> x
[1] 1 2 3
> names(x) <- c("a","b","ab")
> x
 a  b ab 
 1  2  3 
> x
 a  b ab 
 1  2  3 
> x <- c(1:3)
> x
[1] 1 2 3
> x <- "names<-"(x,value=c("a","b","ab"))
> x
 a  b ab 
 1  2  3 

assign功能。 我沒有看到使用它的任何問題,但你必須知道你想要分配的環境。 請參閱幫助?assign語法。

仔細閱讀本章,詳細了解環境的細節。 http://adv-r.had.co.nz/Environments.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM