回答編集履歴
3
test
CHANGED
@@ -42,3 +42,22 @@
|
|
42
42
|
# 10 4 d <NA> <NA> <NA> <NA> <NA> <NA> d
|
43
43
|
# 11 4 b <NA> <NA> <NA> <NA> <NA> <NA> b
|
44
44
|
```
|
45
|
+
|
46
|
+
### 追記
|
47
|
+
|
48
|
+
> EXCELに出力した時にaがあるセルは黄色、bがあるセルは青色、cがあるセルは赤色、dがあるセルは紫色に…
|
49
|
+
|
50
|
+
`A[row - 1, col - 1]` ではなく `A[row - 1, col]` ではないかと思います。
|
51
|
+
|
52
|
+
```r
|
53
|
+
for (row in 2:(nrow(A) + 1)) {
|
54
|
+
for (col in 2:ncol(A)) {
|
55
|
+
cell_value <- A[row - 1, col]
|
56
|
+
style <- setColor(cell_value)
|
57
|
+
if (!is.null(style)) {
|
58
|
+
addStyle(wb, sheet = 1, style = style, rows = row, cols = col, gridExpand = TRUE)
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
62
|
+
```
|
63
|
+
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2024-07-17/f88fedad-e0da-4ac4-8dbb-841bb57643e4.png)
|
2
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
> 目標としては、セルに2つ表示されるのではなく該当する月に同じ(物)プロダクトがある場合はpatientidを2行にし、一つのセルに一つのプロダクトとしたい
|
2
2
|
|
3
|
-
`row_id` 列(`row_number()`)を追加してから `pivot_wider()` を実行します。この様にすることで、`
|
3
|
+
`row_id` 列(`row_number()`)を追加してから `pivot_wider()` を実行します。この様にすることで、`patientid` + `row_id`(`pivot_wider()` におけるインデックス値)がユニークになるので期待する出力になるかと思います。
|
4
4
|
```r
|
5
5
|
suppressMessages(library(tidyverse))
|
6
6
|
|
1
test
CHANGED
@@ -1,49 +1,44 @@
|
|
1
|
-
>
|
1
|
+
> 目標としては、セルに2つ表示されるのではなく該当する月に同じ(物)プロダクトがある場合はpatientidを2行にし、一つのセルに一つのプロダクトとしたい
|
2
2
|
|
3
|
-
|
3
|
+
`row_id` 列(`row_number()`)を追加してから `pivot_wider()` を実行します。この様にすることで、`receiptname` + `row_id`(`pivot_wider()` におけるインデックス値)がユニークになるので期待する出力になるかと思います。
|
4
|
-
|
5
4
|
```r
|
6
5
|
suppressMessages(library(tidyverse))
|
7
|
-
Sys.setlocale("LC_TIME", "C")
|
8
6
|
|
9
|
-
|
7
|
+
A <- data.frame(
|
10
|
-
|
8
|
+
patientid = c(1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4),
|
11
|
-
|
9
|
+
receiptname = c('a', 'b', 'a', 'c', 'd', 'b', 'd', 'a', 'c', 'd', 'b'),
|
10
|
+
actdate = as.Date(c('2020-01-15', '2020-01-15', '2020-02-20', '2020-03-10', '2020-03-10', '2020-04-05', '2020-05-25', '2020-05-25',
|
12
|
-
|
11
|
+
'2020-06-17', '2020-07-19', '2020-07-19'))
|
13
12
|
)
|
14
13
|
|
15
|
-
#
|
16
|
-
selected_data_subset1 <- selected_data_subset1 |>
|
17
|
-
add_row(
|
18
|
-
actdate =
|
19
|
-
seq.Date(
|
20
|
-
min(selected_data_subset1$actdate),
|
21
|
-
max(selected_data_subset1$actdate),
|
22
|
-
by = "1 month"
|
23
|
-
)
|
24
|
-
|
14
|
+
A <- A |>
|
25
|
-
# summarize with each month
|
26
|
-
mutate(ea
|
15
|
+
mutate(year_month = format(actdate, "%Y-%m")) |>
|
27
|
-
distinct(each_month, .keep_all = TRUE) |>
|
28
16
|
select(-actdate) |>
|
17
|
+
# add unique id
|
18
|
+
mutate(row_id = row_number()) |>
|
29
19
|
pivot_wider(
|
30
|
-
names_from = ea
|
20
|
+
names_from = year_month,
|
31
21
|
names_sort = TRUE,
|
32
22
|
values_from = receiptname
|
33
23
|
) |>
|
24
|
+
select(-row_id) |>
|
34
25
|
drop_na(patientid) |>
|
35
|
-
unite("receiptname", !patientid, remove = FALSE, na.rm = TRUE)
|
26
|
+
unite("receiptname", !patientid, remove = FALSE, na.rm = TRUE)
|
36
|
-
# rename date columns
|
37
|
-
rename_with(~strftime(., "%b-%y"), -c("patientid", "receiptname"))
|
38
27
|
|
39
|
-
|
28
|
+
A
|
40
29
|
|
41
|
-
# # A tibble:
|
30
|
+
# # A tibble: 11 × 9
|
42
|
-
# patientid receiptname `
|
31
|
+
# patientid receiptname `2020-01` `2020-02` `2020-03` `2020-04` `2020-05` `2020-06` `2020-07`
|
43
|
-
# <dbl> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
|
32
|
+
# <dbl> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
|
33
|
+
# 1 1 a a <NA> <NA> <NA> <NA> <NA> <NA>
|
34
|
+
# 2 1 b b <NA> <NA> <NA> <NA> <NA> <NA>
|
35
|
+
# 3 2 a <NA> a <NA> <NA> <NA> <NA> <NA>
|
36
|
+
# 4 2 c <NA> <NA> c <NA> <NA> <NA> <NA>
|
37
|
+
# 5 2 d <NA> <NA> d <NA> <NA> <NA> <NA>
|
38
|
+
# 6 3 b <NA> <NA> <NA> b <NA> <NA> <NA>
|
39
|
+
# 7 3 d <NA> <NA> <NA> <NA> d <NA> <NA>
|
40
|
+
# 8 3 a <NA> <NA> <NA> <NA> a <NA> <NA>
|
41
|
+
# 9 4 c <NA> <NA> <NA> <NA> <NA> c <NA>
|
44
|
-
# 1
|
42
|
+
# 10 4 d <NA> <NA> <NA> <NA> <NA> <NA> d
|
45
|
-
#
|
43
|
+
# 11 4 b <NA> <NA> <NA> <NA> <NA> <NA> b
|
46
|
-
# 3 5341 C <NA> <NA> C <NA> <NA> <NA>
|
47
|
-
# 4 2859 C <NA> <NA> <NA> <NA> <NA> C
|
48
44
|
```
|
49
|
-
|