Pivot_wider : tydr Pivot table 填充了 NA 值
Pivot_wider : tydr Pivot table filled with NA values
我的数据是这样的:
structure(
list(
ID = c(1, 2, 3, 4, 5, 6),
Compagny = c("x", "x", "x", "y", "y", "y"),
Variable = c("size", "lenght", "diameter", "size", "lenght", "diameter"),
Score = c(12, 15, 8, 20, 4, 7)
),
row.names = c(NA, -6L),
class = "data.frame"
)
ID
Compagny
Variable
Score
1
x
size
12
2
x
lenght
15
3
x
diameter
8
4
y
size
20
5
y
lenght
4
6
y
diameter
7
我想更广泛地旋转以便变量是列:
ID
Compagny
size
lenght
diameter
1
x
12
15
8
2
y
20
4
7
我已经学习了本教程
因为我有同样的问题
我在Copy/paste上面找到这行代码:
d %>%
group_by(name) %>%
mutate(row = row_number()) %>%
tidyr::pivot_wider(names_from = name, values_from = val) %>%
select(-row)
那变成了
PivoTable <- LongTable %>%
group_by(score) %>%
mutate(row = row_number()) %>%
tidyr::pivot_wider(names_from = score, values_from = mean) %>%
select(-row)
而且每一行我都有一个特殊的标识符。
它仍然不起作用,即使我没有适当的 table,而是一个具有 NA 值的矩阵(参见图片)
你可以这样做:
df %>%
pivot_wider(id_cols = -ID, names_from = Variable, values_from = Score) %>%
mutate(ID = row_number(), .before = Compagny)
# A tibble: 2 x 5
ID Compagny size lenght diameter
<int> <chr> <int> <int> <int>
1 1 x 12 15 8
2 2 y 20 4 7
ESGTable <- select(EU_ESG_PILLARS,compagny, variable_name, mean_value)
ESGTable <- tibble::rowid_to_column(ESGTable, "ID")
# Petittable <- tibble::rowid_to_column(Petittable, "ID")
StackTry <- ESGTable %>%
pivot_wider(id_cols = -ID, names_from = variable_name, values_from = mean_value) %>%
mutate(ID = row_number(), .before = compagny)
## --> worked
- 添加和索引列(1-->n 行)
- 删除多余的一列
- pivot_wider(id_cols --> 唯一标识每一行
非常感谢您这么快的帮助!
Output
我的数据是这样的:
structure(
list(
ID = c(1, 2, 3, 4, 5, 6),
Compagny = c("x", "x", "x", "y", "y", "y"),
Variable = c("size", "lenght", "diameter", "size", "lenght", "diameter"),
Score = c(12, 15, 8, 20, 4, 7)
),
row.names = c(NA, -6L),
class = "data.frame"
)
ID | Compagny | Variable | Score |
---|---|---|---|
1 | x | size | 12 |
2 | x | lenght | 15 |
3 | x | diameter | 8 |
4 | y | size | 20 |
5 | y | lenght | 4 |
6 | y | diameter | 7 |
我想更广泛地旋转以便变量是列:
ID | Compagny | size | lenght | diameter |
---|---|---|---|---|
1 | x | 12 | 15 | 8 |
2 | y | 20 | 4 | 7 |
我已经学习了本教程
因为我有同样的问题
我在Copy/paste上面找到这行代码:
d %>%
group_by(name) %>%
mutate(row = row_number()) %>%
tidyr::pivot_wider(names_from = name, values_from = val) %>%
select(-row)
那变成了
PivoTable <- LongTable %>%
group_by(score) %>%
mutate(row = row_number()) %>%
tidyr::pivot_wider(names_from = score, values_from = mean) %>%
select(-row)
而且每一行我都有一个特殊的标识符。 它仍然不起作用,即使我没有适当的 table,而是一个具有 NA 值的矩阵(参见图片)
你可以这样做:
df %>%
pivot_wider(id_cols = -ID, names_from = Variable, values_from = Score) %>%
mutate(ID = row_number(), .before = Compagny)
# A tibble: 2 x 5
ID Compagny size lenght diameter
<int> <chr> <int> <int> <int>
1 1 x 12 15 8
2 2 y 20 4 7
ESGTable <- select(EU_ESG_PILLARS,compagny, variable_name, mean_value)
ESGTable <- tibble::rowid_to_column(ESGTable, "ID")
# Petittable <- tibble::rowid_to_column(Petittable, "ID")
StackTry <- ESGTable %>%
pivot_wider(id_cols = -ID, names_from = variable_name, values_from = mean_value) %>%
mutate(ID = row_number(), .before = compagny)
## --> worked
- 添加和索引列(1-->n 行)
- 删除多余的一列
- pivot_wider(id_cols --> 唯一标识每一行
非常感谢您这么快的帮助! Output