r - R用NA替换第一个n列值
问题描述
我有两年内的大量股票数据。数据框按股票 ID 和日期排序,即首先我拥有一只股票的所有数据,然后是第二只股票的所有数据,依此类推。现在我想用 NA 替换每只股票的列中的前 29 个值(行)。有没有一种简单的方法可以做到这一点?
我曾尝试使用:
aggregate(column~stock_id, data = df, FUN = function(x){x[1:29] <- NA})
但它不起作用。
解决方案
aggregate
用于总结 - 你最终每组有 1 行。你想要相同的行数,所以aggregate
不适合你。
我会使用dplyr
:
library(dplyr)
df %>% group_by(stock_id) %>%
mutate(column = case_when(row_number() < 30 ~ NA_real_, TRUE ~ column))
推荐阅读
- xamarin.forms - 使用 MVVM 的主详细信息页面
- node.js - 在节点 postgres 中一次插入多行
- django - 动态添加表单集的字段
- c# - wpf c# datagrid GroupStyle - 扩展哪些行
- php - PHP嵌套数组:内爆每个叶子的所有树键会产生一个多维数组而不是一维关联数组
- c# - 如何对 DataGridView 中添加的每个列求和?
- blazor - 什么时候认为参数不同?
- javascript - lis 的值并将它们转换回整数
- terminal - 使用终端过滤日志文件中的多个单词
- python - ModuleNotFoundError: No module named 'utils': 如何更改 Import 查看的父目录