小编Ziz*_*zou的帖子

如何在 R 中将选定的行转换为单列

我有一个需要转换的数据框。我需要根据列的值将唯一行更改为单列。

我的数据如下:

df1 <- data.frame(V1 = c("a", "a", "b", "b","b"), 
                  V2 = c("product1", "transport", "product1", "product2","transport"),
                  V3 = c("100", "10", "100", "100","10"))

> df1
  V1        V2  V3
1  a  product1 100
2  a transport  10
3  b  product1 100
4  b  product2 100
5  b transport  10
Run Code Online (Sandbox Code Playgroud)

我需要进行以下转换,并将 V3 的值除以 V1 中包含的产品数量。

> df2
  V1       V2 transport  V3
1  a product1        10 100
2  b product1         5 100
3  b product2         5 100
Run Code Online (Sandbox Code Playgroud)

r dataframe dplyr data.table tidyr

6
推荐指数
1
解决办法
215
查看次数

按组选择每次运行零之前的最后一个非零值

我有以下数据框:

   variable       Date values values2
1         a 2017-01-01      3       1
2         a 2017-01-02      4       2
3         a 2017-01-03      5       1 # non-zero followed by zero
4         a 2017-01-04      0       2
5         a 2017-01-05      0       2
6         a 2017-01-06      0       3
7         b 2017-01-01     10       1
8         b 2017-01-02     11       2
9         b 2017-01-03     12       2
10        b 2017-01-04     13       3
11        b 2017-01-05     14       0
12        b 2017-01-06     15       1
13        c 2017-01-01     45       2
14        c 2017-01-02     50       3 …
Run Code Online (Sandbox Code Playgroud)

r dataframe dplyr

4
推荐指数
1
解决办法
102
查看次数

如何在 R 中复制向量

我需要以数字改变的方式复制向量,因为目前我只复制相同的数字。

例子:

> rep(c(sample(c(1:100),5, replace = T),sample(NA ,5, replace = T)), 2)
 [1] 33 91 48 18 29 NA NA NA NA NA 33 91 48 18 29 NA NA NA NA NA

I would like 
[1] 33 91 48 18 29 NA NA NA NA NA 23 45 27 67 55 NA NA NA NA NA
Run Code Online (Sandbox Code Playgroud)

replication r sample

0
推荐指数
1
解决办法
66
查看次数

R中多列按组计算百分比

我有几个包含每月数据的数据框,我想找到每个产品和每个月的百分比分布。我对几个月的多列有问题。目前,我只能获得一个月内按组划分的百分比。

data <- data.frame(group = rep(LETTERS[1:3], each = 4),  
                   Product = letters[1:4],
                   January = sample(1:100,12),
                   February = sample(1:100,12))

data_new1 <- transform(data,                             
                       perc = ave(January,
                                  group,
                                  FUN = prop.table))
data_new1$perc<-round(data_new1$perc, 2)

> data_new1
   group Product January February perc
1      A       a      12       16 0.05
2      A       b      73       75 0.32
3      A       c      78       11 0.34
4      A       d      65       35 0.29
5      B       a      86       63 0.36
6      B       b      33       71 0.14
7      B       c      92       49 0.38
8 …
Run Code Online (Sandbox Code Playgroud)

r transform percentage dataframe

0
推荐指数
1
解决办法
2791
查看次数

R中数据框中两列之间的计算

我想expected基于其他两列创建一个新列。通过添加 columnconst中的值并减去column 中的值来创建新列value

我的数据:

df<-data.frame(product = rep(c('A','B'),each=4), data = seq(as.Date("2020-01-01"), as.Date("2020-01-04"), by = "day"),
               value = c(10, 15, 0, 5, 20, 5, 10, 0), const = c(100, 0, 10, 0, 100, 0, 0, 10), 
               expected = c(90, 75, 85, 80, 80, 75, 65, 75))

> df
  product       data value const expected
1       A 2020-01-01    10   100       90
2       A 2020-01-02    15     0       75
3       A 2020-01-03     0    10       85
4       A 2020-01-04     5     0 …
Run Code Online (Sandbox Code Playgroud)

r dataframe

-3
推荐指数
1
解决办法
406
查看次数

标签 统计

r ×5

dataframe ×4

dplyr ×2

data.table ×1

percentage ×1

replication ×1

sample ×1

tidyr ×1

transform ×1