0
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
代わりの2つのvar[i]
引数ですが、私はc("var1", "var2")
のような単一の引数のベクトルとしてそれらを指定する方法を把握しようとしています。これを達成するために関数で何を変更する必要がありますか?
var1とvar2の値が異なる場合でも動作しますか?例えば。data [data $ PROD == prod、var2] < - 0' – RTrain3k
はい、あなたは 'V = c(var1、var2)Chgのようにすることができます.var.df(data、prod、V) ' – G5W
これは' data [data $ PROD == prod、vars] < - c(-1、0) 'なのでしょうか? –