簡體   English   中英

函數參數作為輸出名稱的一部分

[英]Function argument as a part of the output name

也許是一個愚蠢的問題,但我無法在任何地方找到任何答案(我看過:P)。 我試圖用兩個參數創建一個函數,這些參數將是向量(egx = c(a,b,c)和y = c(50,75,100))。 我將編寫一個函數來計算這些的所有組合,並將參數用作輸出名稱的一部分。 例如

函數(X,Y)
df $ output_a_50 = a * 2 + 50 ^ 2
df $ output_a_75 = a * 2 + 75 ^ 2 .....

任何建議將不勝感激:)

正如@Spacedman和其他人所討論的那樣,你的問題是,如果你將c(a, b, c)傳遞給你的函數,名字就會丟失。 在我看來,最好的選擇是通過一個列表:

foo <- function(x, y) {
   df <- list()
   for (xx in names(x)) {
      for (yy in y) {
         varname <- paste("output", xx, yy, sep = "_")
         df[[varname]] <- x[[xx]]*2 + yy^2
      }
   }
   df
}

foo(x = list(a = NA, b = 1, c = 2:3),
    y = c(50, 75, 100))

# $output_a_50
# [1] NA
# 
# $output_a_75
# [1] NA
# 
# $output_a_100
# [1] NA
# 
# $output_b_50
# [1] 2502
# 
# $output_b_75
# [1] 5627
# 
# $output_b_100
# [1] 10002
# 
# $output_c_50
# [1] 2504 2506
# 
# $output_c_75
# [1] 5629 5631
# 
# $output_c_100
# [1] 10004 10006

暫無
暫無

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

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