如何将公式应用于R数据框列的一部分?

时间:2019-07-19 08:35:30

标签: r dataframe

如何修改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

我尝试将列分成两半,然后在将其中一个加倍后再将它们重新加入,但这没用。

1 个答案:

答案 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)