假设我有一个向量x=c(3,2,1)
。我有一个数据框d
。我想在该数据框中添加一列,以便x
取值3
,然后新列取值1
,否则取值0
。它可以通过使用简单的" ifelse"来完成。但我的问题是我希望新的矢量名称为" var_3
" (显然没有引号)我将从3
中提取x[1]
。
我试过了:
d$paste("var",x[1],sep="_")=ifelse(d$x==x[1],1,0)
给出了错误:赋值目标扩展为非语言对象。因为粘贴给了我想要的var_3
但是带引号。我也试过了无报价,但没有运气。
答案 0 :(得分:1)
这不适用于$
运算符,但使用[
下标运算符:
d[, paste("var", x[1], sep="_")] <- ifelse(d$x == x[1], 1, 0)