你好我在执行下面的r代码以将一个列值替换为另一个列值时陷入了困境
如果金额超过限额,我想将金额列的值替换为限额值的50% 这给了我一个错误你好我在执行下面的r代码以将一个列值替换为另一个列值时陷入了困境,r,R,如果金额超过限额,我想将金额列的值替换为限额值的50% 这给了我一个错误 Error in `[<-.data.frame`(`*tmp*`, cust_spend_trans$Amount > cust_spend_trans$Limit, : replacement has 1500 items, need 6070 “[cust\u spend\u trans$Limit”中的错误: 更换1500件,需要6070件 您的代码试图分配给所有列,因为您使用的是数据[某些行
Error in `[<-.data.frame`(`*tmp*`, cust_spend_trans$Amount > cust_spend_trans$Limit, :
replacement has 1500 items, need 6070
“[cust\u spend\u trans$Limit”中的错误:
更换1500件,需要6070件
您的代码试图分配给所有列,因为您使用的是数据[某些行,]=…
。相反,您需要数据[某些行,金额]=…
要指定要将值指定给的列,请执行以下操作:
cust_spend_trans[cust_spend_trans$Amount > cust_spend_trans$Limit, "Amount"] = (0.5*cust_spend_trans$Limit)
或者,去掉[
中的逗号并将
$Amount
在开始处,因此分配给列向量的子集数据$Amount
cust_spend_trans$Amount[cust_spend_trans$Amount > cust_spend_trans$Limit] = (0.5*cust_spend_trans$Limit)
cust\u-spend\u-trans[cust\u-spend\u-trans$金额>cust\u-spend\u-trans$限额,]
反映一部分数据,而不是所有行。cust expense\u trans$Limit
反映所有行。此外,第一行反映所有列,而后一列只反映一列。请使用dput
添加数据,并显示相同数据的预期输出。请阅读有关的信息以及如何给出建议。
cust_spend_trans$Amount[cust_spend_trans$Amount > cust_spend_trans$Limit] = (0.5*cust_spend_trans$Limit)