重复某一列两次,并针对特定行调整数值

R语言:重复列和修改特定数据
目的:将Price这一列重复两次并命名(low, High),并针对特定的数值调整(向下调整5,或向上调整5)
Before

img

After:

img

可以这样操作,代码如下:

library(xlsx)
d<-read.xlsx('t7_1.xlsx',1)
#write.xlsx(d,"t7.xlsx", sheetName="test1", append=TRUE)
f<-function(x){
    if(d[d['Price']==x,'Brand'] =='Orange'||d[d['Price']==x,'Brand']=='Watermelon') x-5 else x}
f1<-function(x){
    if(d[d['Price']==x,'Brand'] =='Orange'||d[d['Price']==x,'Brand']=='Watermelon') x+5 else x}
d$lower<-lapply(d$Price,f)
d$high<-lapply(d$Price,f1)
print(d)