簡體   English   中英

如何使用R將項目向量傳遞給函數中的單個參數?

[英]How to pass vector of items to single argument in function using R?

如何使用R將項目向量傳遞給函數中的單個參數?

我有下面的函數來更改數據框中變量的值。

DF:

df <-   read.table(text="   PROD    var1    var2    
                 1  1   0   
                 2  0   0   
                 3  0   0   
                 1  1   0   
                 2  0   0   
                 3  0   0   ", header=T)

功能

Chg.var.df.t <- function(data, prod, vars, numvar, lvl){  
  if(numvar==2 & lvl==1){
    data[data$PROD == prod, vars] <- 1
    data[data$PROD == prod, vars] <- 0}
  if(numvar==2 & lvl == 2){
    data[data$PROD == prod, vars] <- 0
    data[data$PROD == prod, vars] <- 1}
  if(numvar==2 & lvl == 3){
    data[data$PROD == prod, vars] <- -1
    data[data$PROD == prod, vars] <- -1}
  return(data)

}

Chg.var.df.t(df, 1, c("var1", "var2"), 2, 1)

結果

  PROD var1 var2
1    1    0    0
2    2    0    0
3    3    0    0
4    1    0    0
5    2    0    0
6    3    0    0

因此,我想每個變量都傳遞給每個data[data$PROD == prod, vars]

我想要的結果是

  PROD var1 var2
1    1    1    0
2    2    0    0
3    3    0    0
4    1    1    0
5    2    0    0
6    3    0    0

我正在嘗試找出如何在單個參數(例如c("var1", "var2")中將它們指定為向量,而不是函數中的兩個var[i]參數。 要完成此功能,我需要更改什么?

    Chg.var.df <- function(data, prod, vars){
      data[data$PROD == prod, vars] <- -1
      return(data)
    }

並將變量列表傳遞給函數。

暫無
暫無

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

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