繁体   English   中英

R:根据另一列操作一个数据框列的值

[英]R: Manipulate values of one data frame column based on another column

假设您有银行帐户信息:

a=data.frame(Transaction=c(1,2,6,3,8,3,5.25,6.99,2,5),type=c("CREDIT","DEBIT","DEBIT","DEBIT","DEBIT","CREDIT","CREDIT","CREDIT","DEBIT","CREDIT"))

行包括第一列中的美元金额以及是否已将其记入或添加到帐户中。 我想基于第二行操纵第一行,如果是信用则保持积极,但如果它是借记则否定它。 到目前为止,我提出的最好的是:

a$Transaction[a$type=="DEBIT"]=-a$Transaction

我正在寻找一个简单的非循环解决方案,因为我相信这样的解决方案存在于R.谢谢,伙计们!

我更喜欢在步骤中执行此操作,并创建索引向量:

R> ind <- a[,"type"] == "CREDIT"
R> ind
 [1]  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE  TRUE
R> a[ind, "Transaction"] <- - a[ind, "Transaction"]
R> a
   Transaction   type
1        -1.00 CREDIT
2         2.00  DEBIT
3         6.00  DEBIT
4         3.00  DEBIT
5         8.00  DEBIT
6        -3.00 CREDIT
7        -5.25 CREDIT
8        -6.99 CREDIT
9         2.00  DEBIT
10       -5.00 CREDIT
R> 
a[a$type=="DEBIT",]$Transaction <- -a[a$type=="DEBIT",]$Transaction

是你在找什么。 您需要逗号来指定您正在使用数据框的行这一事实。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM