我有一个数据框“df”,如下所示:
日期 | 价值1 | 价值2 |
---|---|---|
2022-03-14 13:00:00 | AMRO | 3 |
2022-03-14 13:10:00 | AMRO | 4 |
2022-03-14 13:20:00 | BTYW | 5 |
2022-03-14 13:30:00 | 商城 | 6 |
2022-03-14 13:40:00 | AMRO | 7 |
2022-03-14 13:50:00 | CHSP | 8 |
2022-03-14 14:00:00 | AMRO | 40 |
2022-03-14 14:10:00 | AMRO | 50 |
2022-03-14 14:20:00 | 德居 | 60 |
2022-03-14 14:30:00 | AMRO | 70 |
2022-03-14 14:40:00 | AMRO | 80 |
2022-03-14 14:50:00 | CHSP | 90 |
我想在 40% 的行的“Value 1”中的值的尾部添加一个空格和数字 1,但随机进行一些操作,以便结果如下所示:
日期 | 价值1 | 价值2 |
---|---|---|
2022-03-14 13:00:00 | AMRO 1 | 3 |
2022-03-14 13:10:00 | AMRO 1 | 4 |
2022-03-14 13:20:00 | BTYW | 5 |
2022-03-14 13:30:00 | 商城 | 6 |
2022-03-14 13:40:00 | AMRO | 7 |
2022-03-14 13:50:00 | CHSP 1 | 8 |
2022-03-14 14:00:00 | AMRO | 40 |
2022-03-14 14:10:00 | AMRO | 50 |
2022-03-14 14:20:00 | 德居1 | 60 |
2022-03-14 14:30:00 | AMRO 1 | 70 |
2022-03-14 14:40:00 | AMRO | 80 |
2022-03-14 14:50:00 | CHSP | 90 |
是否有一种简单的方法可以做到这一点,以便如果我想更改在将来的实例中修改的行的百分比,我可以?
感谢您的宝贵时间。
您可以对一定比例的观测值进行采样(在本例中为 0.4),然后为这些观测值在
Value1
后面附加 1。您可以通过将这部分代码中的 .4 更改为其他值来更改附加 1 的比例:round(nrow(tib))*.4
。
library(dplyr)
tib <- tibble::tribble(
~Date, ~Value1, ~Value2,
"2022-03-14 13:00:00", "AMRO", 3,
"2022-03-14 13:10:00", "AMRO", 4,
"2022-03-14 13:20:00", "BTYW", 5,
"2022-03-14 13:30:00", "MALL", 6,
"2022-03-14 13:40:00", "AMRO", 7,
"2022-03-14 13:50:00", "CHSP", 8,
"2022-03-14 14:00:00", "AMRO", 40,
"2022-03-14 14:10:00", "AMRO", 50,
"2022-03-14 14:20:00", "DEJU", 60,
"2022-03-14 14:30:00", "AMRO", 70,
"2022-03-14 14:40:00", "AMRO", 80,
"2022-03-14 14:50:00", "CHSP", 90)
rows <- sample(1:nrow(tib), round(nrow(tib))*.4, replace=FALSE)
tib <- tib %>%
mutate(Value1 = ifelse(row_number() %in% rows, paste0(Value1, " 1"), Value1))
tib
#> # A tibble: 12 × 3
#> Date Value1 Value2
#> <chr> <chr> <dbl>
#> 1 2022-03-14 13:00:00 AMRO 3
#> 2 2022-03-14 13:10:00 AMRO 4
#> 3 2022-03-14 13:20:00 BTYW 5
#> 4 2022-03-14 13:30:00 MALL 6
#> 5 2022-03-14 13:40:00 AMRO 1 7
#> 6 2022-03-14 13:50:00 CHSP 1 8
#> 7 2022-03-14 14:00:00 AMRO 1 40
#> 8 2022-03-14 14:10:00 AMRO 50
#> 9 2022-03-14 14:20:00 DEJU 1 60
#> 10 2022-03-14 14:30:00 AMRO 70
#> 11 2022-03-14 14:40:00 AMRO 80
#> 12 2022-03-14 14:50:00 CHSP 90
创建于 2023-08-11,使用 reprex v2.0.2