使用dplyr更改特定行中数据框中的值

流瑞安

是否可以将数据帧限制为特定行,然后更改其中一列中的某些值?

假设我计算GROWTH为as (SIZE_t+1 - SIZE_t)/SIZE_t,现在可以看到存在一些奇怪的值GROWTH(例如1000),原因是相应SIZE变量的值损坏现在,我想查找并替换的损坏值SIZE

如果输入:

data <- mutate(filter(data, lead(GROWTH)==1000), SIZE = 2600)

那么只有损坏的行会存储在其中data,而我的数据帧的其余部分都会丢失。

我想做的是将左侧的“数据”过滤到损坏值的相应行,然后对不正确的变量进行突变(在右侧):

filter(data, lead(GROWTH)==1000)  <- mutate(filter(data, lead(GROWTH)==1000), SIZE = 2600) 

但这似乎不起作用。有没有办法使用dplyr处理此问题?提前谢谢了

智慧

您可以使用ifelse带有mutate功能语句假设您有一个数据帧,在第3行的SIZE中有一些损坏的值,导致第4行的GROWTH值很大,并且您想在第3行替换SIZE,在0.3这里用一些值(我选择与您的不同)与我的价值观保持一致)。GROWTH > 1000条件可以相应地替换。

data
          SIZE       GROWTH
1  -1.49578498           NA
2  -0.38731784   -0.7410605
3   0.00010000   -1.0002582
4   0.53842217 5383.2216758
5  -0.65813674   -2.2223433
6   0.29830698   -1.4532599
7   0.04712019   -0.8420413
8  -0.07312482   -2.5518788
9   1.64310713  -23.4698959
10  1.44927727   -0.1179654

library(dplyr)
data %>% mutate(SIZE = ifelse(lead(GROWTH > 1000, default = F), 0.3, SIZE))
          SIZE       GROWTH
1  -1.49578498           NA
2  -0.38731784   -0.7410605
3   0.30000000   -1.0002582
4   0.53842217 5383.2216758
5  -0.65813674   -2.2223433
6   0.29830698   -1.4532599
7   0.04712019   -0.8420413
8  -0.07312482   -2.5518788
9   1.64310713  -23.4698959
10  1.44927727   -0.1179654

资料

structure(list(SIZE = c(-1.49578498093657, -0.387317841955887, 
1e-04, 0.538422167582116, -0.658136741561064, 0.298306980856383, 
0.0471201873908915, -0.0731248216938637, 1.64310713116132, 1.44927727104653
), GROWTH = c(NA, -0.741060482026387, -1.00025818588551, 5383.22167582116, 
-2.22234332311492, -1.45325988053609, -0.842041284935343, -2.55187883883499, 
-23.4698958999199, -0.117965442690154)), class = "data.frame", .Names = c("SIZE", 
"GROWTH"), row.names = c(NA, -10L))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据熊猫数据框中的特定ID更改列的值

在dplyr中测试特定的行值

使用熊猫替换数据框列中的特定值

如何更改Pandas数据框中的特定行标签?

使用python更改特定熊猫数据框列中的行值

对R中的数据框中的特定值使用表摘要

获取熊猫数据框中特定行和列的值

获取数据框中特定值的行和列名称

如何用行/列中的变量/观察值重新排列数据框?(使用dplyr和tidyr)

重复pandas数据框中的行,列值顺序更改

在特定行的数据框中更改增量值

如何在数据框列表中使用purrr :: map来修改特定数据框中的列值,而不更改列表中的其他数据框?

如何使用python计算数据框中特定行值之间的时间差?

如何更改特定列的特定行的值,以及在同一数据框中以熊猫为单位的特定行的值

找出Python数据框中特定行中特定列中匹配的值有多少

根据特定列更改数据框中的值

使用dplyr r更改列中的值时提取行

使用dplyr根据列名称更改数据框中的值?

如何仅在特定子组中随机删除数据框中的行(使用dplyr :: sample_n?)

在随机选择的行中更改R数据框中的值

如何使用dplyr查找R数据框中两行中的值之间的差异

向数据框中添加新列,并使用特定逻辑中的值填充行

更改熊猫数据框中的所有行的值

删除特定值下数据框中的行

如何更改数据框中的特定值

更改数据框中的特定值

当某些观察值少于 n 行时,使用 dplyr 在数据框中每组采样 n 个随机行

如何更改数据框中的特定值

为什么不能使用 .loc 更改 Pandas 数据框中特定列的值?