का उपयोग करके मेरे पास कोड के दो टुकड़े हैं जिनका उपयोग मैं अक्सर करता हूं जिसमें मैं <<-
का उपयोग किसी फ़ंक्शन के भीतर से वैश्विक वातावरण को असाइन करने के लिए करता हूं। मुझे पता है कि मुझे assign
का उपयोग करना चाहिए क्योंकि यह बेहतर नियंत्रण देता है और अधिक अनुमानित है। मैं assign
का उपयोग कर के आसपास मेरे सिर लपेटो करने की कोशिश कर रहा हूं, लेकिन कोड आवंटित करने के लिए उपयोग करता है <<-
कोड स्थानांतरित नहीं कर सकते:कैसे बचें << - असाइन
एक नकली डेटा सेट और <<-
#CREATE A FAKE DATA SET
df <- data.frame(
x.2=rnorm(25),
y.2=rnorm(25),
g=rep(factor(LETTERS[1:5]), 5)
)
#Use split to make a list of data frames
LIST <- split(df, df$g) #split it into a list of data frames
NAMES <- names(LIST) #save the names of this for later use
LIST <- lapply(seq_along(LIST), function(x) as.data.frame(LIST[[x]])[, 1:2])
#THE TWO PIECES OF CODE THAT USE <<-
#Use Global Assignment to Change All Variable Names of Data Frames in a List
lapply(seq_along(LIST), function(x) names(LIST[[x]]) <<-
unlist(strsplit(names(LIST[[x]])[1:length(names(LIST[[x]]))],
".", fixed=T))[c(T, F)]
)
LIST
#Rename All the Data Frames in the List Using Global Assignment
lapply(seq_along(LIST), function(x) names(LIST)[[x]] <<- NAMES[x])
LIST
के साथ दो कोड असाइनमेंट का उपयोग करने के मेरे प्रयास:
lapply(seq_along(LIST), function(x) {
assign(names(LIST[[x]]),
unlist(strsplit(names(LIST[[x]])[1:length(names(LIST[[x]]))],
".", fixed=T))[c(T, F)], envir=.GlobalEnv)
}
)
LIST
lapply(seq_along(LIST), function(x) assign(names(LIST)[[x]],
NAMES[x], envir=.GlobalEnv))
LIST
कृपया मुझे सही तरीके से ऐसा करने में मदद करें और मेरे दृष्टिकोण के साथ गलत क्या है। पहले ही, आपका बहुत धन्यवाद।
वस्तुओं के नाम पर्यावरण में 'नाम' नहीं हैं, इसलिए आप यहां 'असाइन' का उपयोग नहीं कर सकते हैं। – kohske
@ कोहस्के धन्यवाद। क्या आप इसे उत्तर के लिए दे सकते हैं और मैं इसे स्वीकार करूंगा? –