我在DF中有很多组,它们的时间序列数据不是从0开始的。我想通过将每组的第一行中的值设置为0来标准化我的数据,这样所有FrameTime和关联值都被设置到0。为此,我需要从自身中减去第一行的值,然后从下一行中减去下一行的值,依此类推。我想要一个允许我在mutate_at()等许多列上执行此操作的函数。
我尝试过
tmp2 <- tmp %>%
group_by(Name,StimulusName) %>%
mutate_at(8:37, funs(c(first(.), (. - first(.))[-1])) )
但是这会从所有其他行中减去第一行的值,而并不是我真正需要的。
答案 0 :(得分:0)
您要使用dplyr的lag函数来获取上一行的值。在滞后函数中,您想使用dplyr的第一个函数将默认值设置为第一个值。我在下面创建了一个示例:
for folder, subs, files in os.walk(unicode(docs_dir, 'utf-8')):
for filename in files:
if not filename.startswith('.'):
file_path = os.path.join(folder, filename)