【发布时间】:2016-12-03 20:38:39
【问题描述】:
我创建了以下函数来更新数据框中的一些变量。它不会更新变量,而是创建新变量。我不确定为什么将 P1SEG1 和 P1SEG2 传递给 var1 和 var2 不起作用。
数据框:
df <- read.table(text=" PROD P1SEG1 P1SEG2
1 1 0
2 0 0
3 0 0
1 1 0
2 0 0
3 0 0 ", header=T)
功能:
Chg.var.df <- function(data, prod, var1, var2){
data$var1[data$PROD == prod] <- -1
data$var2[data$PROD == prod] <- -1
return(data)
}
结果:
Chg.var.df(df, 1, P1SEG1, P1SEG2)
PROD P1SEG1 P1SEG2 var1 var2
1 1 1 0 -1 -1
2 2 0 0 NA NA
3 3 0 0 NA NA
4 1 1 0 -1 -1
5 2 0 0 NA NA
6 3 0 0 NA NA
【问题讨论】:
-
你不应该使用
$var1,而应该如下使用它:data[data$PROD == prod, var1] <- -1 -
@ProcrastinatusMaximus 我收到此错误
Error in[(*tmp*, data$PROD == prod, var1, value = -1) : duplicate subscripts for columns
标签: r function variables dataframe