如何修改R中单个数据框列的一部分?
我有一个包含几列的数据框,我只需要Date列和相关变量(名为RIL0)。我只是想在某个特定日期(2009年11月26日)之后将RIL0列中的值加倍,但是我找不到解决方法。
a <- read.csv("<Some file>.csv", header = TRUE, sep = ",") # loaded csv file
a$Date <- as.Date(a$Date, "%d-%b-%Y") # date formatted
a <- a[,-c(2,3)] # retained only the Date and RIL0 columns
head(a)
Date RIL0
1 2009-07-01 2057.35
2 2009-07-02 2010.15
3 2009-07-03 2025.85
4 2009-07-06 1893.60
我尝试将列分成两半,然后在将其中一个加倍后再将它们重新加入,但这没用。
答案 0 :(得分:0)
如果您订购了Date
列,则可以尝试
inds <- a$Date > as.Date("2009-11-26")
a$RIL0[inds] <- a$RIL0[inds] * 2
如果未订购,但您想更改日期尝试之后出现的所有值
inds <- which(a$Date == as.Date("2009-11-26"))
a$RIL0[inds : nrow(a)] <- a$RIL0[inds : nrow(a)] * 2
这是假设您的Date
列属于“日期”类。如果是因子类或字符类,请先运行
a$Date <- as.Date(a$Date)