【发布时间】:2019-09-03 08:27:42
【问题描述】:
我是 R 新手,但遇到了问题。我有一个包含超过 80000 个条目的 CSV 数据框。我有一列(maj)填充了 0 和 1,一列是一年中的每一天,一列是每天的价格(和其他列)。当 maj = 1 时,表示当天已完成价格更新。 我想做的是: 如果过去 30 天内 maj = 0,则必须将价格替换为“N/A”
这是我的 df 示例:
day maj price
2019-01-02 1 1435
2019-01-03 0 1435
2019-01-04 0 1435
2019-01-05 0 1435
例如,如果在 2019-01-03 和 2019-02-03 之间,maj = 0,我想将 2019-02-04 和以下所有的价格替换为 N/A,直到 maj=再 1 次。
我没有任何代码要显示,因为当我看到没有任何工作时我将其删除。 我用 zoo 包尝试了 rollapplyr,它创建了一个函数和值来滚动每月总和,但我不明白。
有人知道怎么做吗?
谢谢,
【问题讨论】:
-
欢迎来到 SO!您能否通过分享您的数据样本和您正在处理的代码来使您的问题可重现,以便其他人可以提供帮助(请不要使用
str()、head()或屏幕截图)?您可以使用reprex和datapasta包来帮助您。另见Help me Help you & How to make a great R reproducible example? -
嗨,我试图粘贴我的剪贴板以显示 df 的示例,因为我没有设法使包工作。
-
我不知道它是否适合您的情况,但也许值得将您的数据加载到 SQLite 数据库中。 db.rstudio.com/databases/sqlite
-
请使用
dput命令生成您的数据:dput(df)。 -
嗨,@RafaelToledo 我试图这样做,但它根本不起作用,我的数据框出现但没有正确写入,所有内容都替换为数字和字母“L” .我不知道为什么。对不起。
标签: r if-statement count conditional-statements find-occurrences