質問編集履歴

6

タグの追加

2022/10/26 09:36

投稿

maltines
maltines

スコア12

test CHANGED
File without changes
test CHANGED
File without changes

5

誤字があったため、修正

2022/10/25 11:11

投稿

maltines
maltines

スコア12

test CHANGED
File without changes
test CHANGED
@@ -10,7 +10,7 @@
10
10
  フォルダ群があるディレクトリ>>日付由来の名前のフォルダ
11
11
 
12
12
  この日付由来のフォルダの中のファイルの中において、特定の名前があるファイルを全て読み込み、オブジェクトに縦方向に統合したデータを作りたいです。
13
- (修正点:当初とディレクトリ構造が変わっています。)
13
+ **(修正点:当初とディレクトリ構造が変わっています。)**
14
14
 
15
15
 
16
16
  ### 発生している問題・エラーメッセージ
@@ -31,7 +31,23 @@
31
31
  3: One or more parsing issues, see `problems()` for details
32
32
  ```
33
33
 
34
+
34
35
  **10/15(木)僕のコメントのエラーに基づいた、10/16(金)のmelianさんのアドバイスに従ってもう一度走らせると、同じエラーが出ました。mutate()でabct_clmt_atty_id 列の値を全て character 型に変換する処理を行ったはずなのですが、同じエラーが出てきてしまいます。**
36
+
37
+ **先日と異なりapp_filelistはemptyではありませんでした。しかし、10/16にコメントでmelianさんがおっしゃられていたファイルの中のフォーマットの確認は、ファイルが重すぎて出来ていません。**
38
+
39
+ **また、**
40
+
41
+
42
+ ```
43
+ Warning messages:
44
+ 1: One or more parsing issues, see `problems()` for details
45
+ 2: One or more parsing issues, see `problems()` for details
46
+ 3: One or more parsing issues, see `problems()` for details
47
+ ```
48
+
49
+ **この意味は何でしょうか、このエラーと関連はあるのでしょうか。**
50
+
35
51
 
36
52
 
37
53
  ※エラーメッセージ(10/16(金)時点)
@@ -131,6 +147,20 @@
131
147
  ```
132
148
 
133
149
  ### 試したこと
150
+
151
+ **現在(10/25(月)時点)
152
+ 当初は、ディレクトリ構造が
153
+ フォルダ群があるディレクトリ>>日付由来の名前のフォルダ>>JPWAP>>お目当てのファイルを含むたくさんのファイル
154
+ だったのですが、**
155
+
156
+ **現在は変更し、
157
+ フォルダ群があるディレクトリ>>日付由来の名前のフォルダ>>お目当てのファイルを含むたくさんのファイル
158
+ となっています。**
159
+
160
+ **また、10/16(金)のmelianさんのアドバイスに基づいて、使用したい列があるか無いか、お目当てのファイルを確認しようとしたのですが、ファイルが重すぎて確認できませんでした。**
161
+
162
+
163
+
134
164
  ※(10/16(金)時点)
135
165
  いくつか試行錯誤してみたものを、何ら頭の手掛かりになればいいと思って載せておきます。
136
166
 

4

アドバイスに基づいた修正

2022/10/25 10:59

投稿

maltines
maltines

スコア12

test CHANGED
File without changes
test CHANGED
@@ -2,18 +2,39 @@
2
2
 
3
3
  RStudioで大学の授業用にデータを取り込みまとめる作業を行っています。
4
4
 
5
+ (10/25(月)時点)melianさんのご意見と自分の試行錯誤を基に修正を重ね、各部分に修正を重ねました。各項目において、冒頭に最新の状態と日付を太字で書いています、その下に※と過去の日付、修正経過を書いています。
6
+
5
7
  ### 実現したいこと
6
8
 
7
9
  現在、ディレクトリ構造としては
8
- フォルダ群があるディレクトリ>>日付由来の名前のフォルダ>>"JPWAP"
10
+ フォルダ群があるディレクトリ>>日付由来の名前のフォルダ
9
-
10
- (各フォルダは日付が異なる名前となっており、それを開くと一度"JPWAP"という名前のフォルダがあり、さらに開くと目当てのファイル群がある。各フォルダは全てこの形式になっている。)
11
+
11
-
12
- この"JPWAP"ディレクトリの中のファイルの中において、特定の名前があるファイルを全て読み込み、オブジェクトに縦方向に統合したデータを作りたいです。
12
+ この日付由来フォルダの中のファイルの中において、特定の名前があるファイルを全て読み込み、オブジェクトに縦方向に統合したデータを作りたいです。
13
+ (修正点:当初とディレクトリ構造が変わっています。)
14
+
13
15
 
14
16
  ### 発生している問題・エラーメッセージ
15
17
 
18
+ **最新のエラーメッセージ(10/25(月)時点)**
19
+
20
+ ```R
21
+ app <- app_filelist %>%
22
+ + map_df(~read_tsv(., locale=locale(encoding="UTF-8"), show_col_types=FALSE)) %>% #各ファイルを読み込み
23
+ + mutate(abct_clmt_atty_id = as.character(abct_clmt_atty_id)) %>% #エラーが出る列を文字列化
24
+ + select(2, 20, 28, 43) #目当ての列を指定
25
+ Error in `dplyr::bind_rows()`:
26
+ ! Can't combine `abct_clmt_atty_id` <character> and `abct_clmt_atty_id` <double>.
27
+ Run `rlang::last_error()` to see where the error occurred.
28
+ Warning messages:
29
+ 1: One or more parsing issues, see `problems()` for details
30
+ 2: One or more parsing issues, see `problems()` for details
31
+ 3: One or more parsing issues, see `problems()` for details
32
+ ```
33
+
34
+ **10/15(木)僕のコメントのエラーに基づいた、10/16(金)のmelianさんのアドバイスに従ってもう一度走らせると、同じエラーが出ました。mutate()でabct_clmt_atty_id 列の値を全て character 型に変換する処理を行ったはずなのですが、同じエラーが出てきてしまいます。**
35
+
36
+
16
- 現在のエラーメッセージ(10/16(金)時点)
37
+ エラーメッセージ(10/16(金)時点)
17
38
  ```
18
39
  defrodir <- "C://Users//yusuk//OneDrive ...//after defrost"
19
40
  > app <- app_filelist %>%
@@ -28,7 +49,7 @@
28
49
  Run `rlang::last_error()` to see where the error occurred.
29
50
  ```
30
51
 
31
- 元々のエラーメッセージ(10/14(金)投稿時)
52
+ 元々のエラーメッセージ(10/14(金)投稿時)
32
53
  ```
33
54
  > for (file in 1:length(file_list)){
34
55
  + targetdir <-sprintf("%s//%s//%s",defordir,basename(file_list[file]),"JPWAP")
@@ -53,7 +74,26 @@
53
74
 
54
75
  ### 該当のソースコード
55
76
 
77
+ **現在のコード(10/25(月)時点)**
78
+
79
+ ```R
80
+ ibrary(tidyverse)
81
+ defrodir <- "C://Users//yusuk//OneDrive ...//after defrost"
82
+ setwd(defrodir) #フォルダ群があるディレクトリに異動
83
+
84
+ #お目当てのファイルを統合して読み込む
85
+ app_file <- "upd_pmab_gr_appl_case_biblog.tsv" #お目当てのファイル名を指定
86
+ app_filelist <- Sys.glob(file.path(defrodir, "*", app_file),dirmark = TRUE) #各フォルダに入ってるお目当てのファイルを捕捉し、リストにする
87
+ app <- app_filelist %>%
88
+ map_df(~read_tsv(., locale=locale(encoding="UTF-8"), show_col_types=FALSE)) %>% #各ファイルを読み込み
89
+ mutate(abct_clmt_atty_id = as.character(abct_clmt_atty_id)) %>% #エラーが出る列を文字列化
90
+ select(2, 20, 28, 43) #目当ての列を指定
91
+
92
+
93
+
94
+ ```
95
+
56
- 現在のコード(10/16(金)時点)
96
+ ※修正過程のコード(10/16(金)時点)
57
97
  ```R
58
98
  app_file <- "upd_pmab_gr_appl_case_biblog.tsv" #お目当てのファイル名を指定
59
99
  app_filelist <- Sys.glob(file.path(defrodir, "*", "JPWAP", app_file),dirmark = TRUE) #各フォルダに入ってるお目当てのファイルを捕捉し、リストにする
@@ -64,7 +104,7 @@
64
104
 
65
105
  ```
66
106
 
67
- 元々のコード(10/14(金)投稿時)
107
+ 元々のコード(10/14(金)投稿時)
68
108
  ```R
69
109
 
70
110
  defrodir <- "C://Users//yusuk//OneDrive ...//after defrost"
@@ -91,7 +131,7 @@
91
131
  ```
92
132
 
93
133
  ### 試したこと
94
- (10/16(金)時点)
134
+ (10/16(金)時点)
95
135
  いくつか試行錯誤してみたものを、何ら頭の手掛かりになればいいと思って載せておきます。
96
136
 
97
137
  mutate()の中のabct_clmt_atty_idを文字列にしてみました。

3

訂正を踏まえた修正

2022/10/16 10:45

投稿

maltines
maltines

スコア12

test CHANGED
File without changes
test CHANGED
@@ -13,6 +13,22 @@
13
13
 
14
14
  ### 発生している問題・エラーメッセージ
15
15
 
16
+ 現在のエラーメッセージ(10/16(金)時点)
17
+ ```
18
+ defrodir <- "C://Users//yusuk//OneDrive ...//after defrost"
19
+ > app <- app_filelist %>%
20
+ + map_df(~read_tsv(., locale=locale(encoding="UTF-8"), show_col_types=FALSE)) %>% #各ファイルを読み込み
21
+ + mutate(abct_clmt_atty_id = as.character(abct_clmt_atty_id)) %>%
22
+ + select(2, 20, 28, 43) #目当ての列を指定
23
+ Error in `mutate()`:
24
+ ! Problem while computing `abct_clmt_atty_id =
25
+ as.character(abct_clmt_atty_id)`.
26
+ Caused by error:
27
+ ! object 'abct_clmt_atty_id' not found
28
+ Run `rlang::last_error()` to see where the error occurred.
29
+ ```
30
+
31
+ 元々のエラーメッセージ(10/14(金)投稿時)
16
32
  ```
17
33
  > for (file in 1:length(file_list)){
18
34
  + targetdir <-sprintf("%s//%s//%s",defordir,basename(file_list[file]),"JPWAP")
@@ -34,8 +50,21 @@
34
50
  Run `rlang::last_error()` to see where the error occurred.
35
51
  ```
36
52
 
53
+
37
54
  ### 該当のソースコード
38
55
 
56
+ 現在のコード(10/16(金)時点)
57
+ ```R
58
+ app_file <- "upd_pmab_gr_appl_case_biblog.tsv" #お目当てのファイル名を指定
59
+ app_filelist <- Sys.glob(file.path(defrodir, "*", "JPWAP", app_file),dirmark = TRUE) #各フォルダに入ってるお目当てのファイルを捕捉し、リストにする
60
+ app <- app_filelist %>%
61
+ map_df(~read_tsv(., locale=locale(encoding="UTF-8"), show_col_types=FALSE)) %>% #各ファイルを読み込み
62
+ mutate(abct_clmt_atty_id = as.character(abct_clmt_atty_id)) %>%
63
+ select(2, 20, 28, 43) #目当ての列を指定
64
+
65
+ ```
66
+
67
+ 元々のコード(10/14(金)投稿時)
39
68
  ```R
40
69
 
41
70
  defrodir <- "C://Users//yusuk//OneDrive ...//after defrost"
@@ -62,16 +91,77 @@
62
91
  ```
63
92
 
64
93
  ### 試したこと
65
- おそらくファイルを開く
94
+ (10/16(金)時点)
66
-
95
+ いくつか試行錯誤してみたものを、何ら頭の手掛かりになればいいと思って載せておきます。
96
+
97
+ mutate()の中のabct_clmt_atty_idを文字列にしてみました。
67
- ```R
98
+ ```R
99
+ defrodir <- "C://Users//yusuk//OneDrive ...//after defrost"
100
+ app_file <- "upd_pmab_gr_appl_case_biblog.tsv" #お目当てのファイル名を指定
68
- app_each <- sapply(app_file,read.csv,fileEncoding = "utf8", header = TRUE,sep = "", simplify=FALSE)
101
+ app_filelist <- Sys.glob(file.path(defrodir, "*", "JPWAP", app_file),dirmark = TRUE) #各フォルダに入ってるお目当てのファイルを捕捉し、リストにする
102
+ app <- app_filelist %>%
103
+ map_df(~read_tsv(., locale=locale(encoding="UTF-8"), show_col_types=FALSE)) %>% #各ファイルを読み込み
104
+ mutate("abct_clmt_atty_id" = as.character("abct_clmt_atty_id")) %>%
105
+ select(2, 20, 28, 43) #目当ての列を指定
106
+
107
+
69
- ```
108
+ ```
109
+
110
+ これを行ったところ、以下のエラーになりました。
111
+ ```
112
+ >defrodir <- "C://Users//yusuk//OneDrive ...//after defrost"
113
+ > app <- app_filelist %>%
114
+ + map_df(~read_tsv(., locale=locale(encoding="UTF-8"), show_col_types=FALSE)) %>% #各ファイルを読み込み
115
+ + mutate("abct_clmt_atty_id" = as.character("abct_clmt_atty_id")) %>%
116
+ + select(2, 20, 28, 43) #目当ての列を指定
117
+ Error in `select()`:
118
+ ! Can't subset columns past the end.
70
- この部分や、ファイルの統合の部分の
119
+ i Locations 2, 20,
120
+ 28, and 43 don't exist.
121
+ i There is only 1 column.
122
+ Run `rlang::last_error()` to see where the error occurred.
123
+ ```
124
+
125
+ mutate()をコメントアウトしてみました。
71
- ```R
126
+ ```R
127
+ defrodir <- "C://Users//yusuk//OneDrive ...//after defrost"
128
+ app_file <- "upd_pmab_gr_appl_case_biblog.tsv" #お目当てのファイル名を指定
129
+ app_filelist <- Sys.glob(file.path(defrodir, "*", "JPWAP", app_file),dirmark = TRUE) #各フォルダに入ってるお目当てのファイルを捕捉し、リストにする
72
- bind_rows(app,app_select)
130
+ app <- app_filelist %>%
131
+ map_df(~read_tsv(., locale=locale(encoding="UTF-8"), show_col_types=FALSE)) %>% #各ファイルを読み込み
132
+ #mutate(abct_clmt_atty_id = as.character(abct_clmt_atty_id)) %>%
133
+ select(2, 20, 28, 43) #目当ての列を指定
134
+
135
+
73
- ```
136
+ ```
137
+
138
+ これをすると以下のエラーが出ました。
139
+ ```
140
+ >defrodir <- "C://Users//yusuk//OneDrive ...//after defrost"
141
+ > app <- app_filelist %>%
142
+ + map_df(~read_tsv(., locale=locale(encoding="UTF-8"), show_col_types=FALSE)) %>% #各ファイルを読み込み
143
+ + #mutate(abct_clmt_atty_id = as.character(abct_clmt_atty_id)) %>% #
144
+ + select(2, 20, 28, 43) #目当ての列を指定
145
+ Error in `select()`:
146
+ ! Can't subset columns past the end.
147
+ i Locations 2, 20,
148
+ 28, and 43 don't exist.
149
+ i There are only 0 columns.
150
+ Run `rlang::last_error()` to see where the error occurred.
151
+ ```
74
- この部分が間違えているかと思い、sep部分変えてみしたのですが、上手くいきません。どうすればいいでしょうか。
152
+ excel方で該当のファイルてみても、0列ではありませんでした列として読み込めてでしょうか。
153
+
154
+ なお、こちらを実行すると、
155
+ ```R
156
+ Sys.glob(file.path(defrodir, "*", "JPWAP", app_file),dirmark = TRUE) #各フォルダに入ってるお目当てのファイルを捕捉し、リストにする
157
+ ```
158
+ すると、以下の結果になりました
159
+ ```
160
+ character(0)
161
+ ```
162
+ パスの作成は上手くいっているのですが、ファイルが捕捉されません。確認してみたのですが、各"JPWAP"の中に該当ファイルは存在していました。
163
+
164
+
75
165
 
76
166
  10/15修正
77
167
  melianさんよりこちらの回答を頂き、実行しました。

2

回答に基づく修正

2022/10/15 12:18

投稿

maltines
maltines

スコア12

test CHANGED
File without changes
test CHANGED
@@ -73,6 +73,45 @@
73
73
  ```
74
74
  この部分が間違えているかと思い、sepの部分を変えてみたりしたのですが、上手くいきません。どうすればいいでしょうか。
75
75
 
76
+ 10/15修正
77
+ melianさんよりこちらの回答を頂き、実行しました。
78
+ ```R
79
+ library(tidyverse)
80
+
81
+ defrodir <- "C://Users//yusuk//OneDrive -...//after defrost"
82
+
83
+ app_file <- "upd_pmab_gr_appl_case_biblog.tsv"
84
+ file_list <- Sys.glob(file.path(defrodir, "*", "JPWAP", app_file))
85
+ app <- file_list %>%
86
+ map_df(~read_tsv(., locale=locale(encoding="UTF-8"), show_col_types=FALSE)) %>%
87
+ select(2, 20, 28, 43)
88
+
89
+
90
+ ```
91
+
92
+ 結果、以下のエラーが出ました。
93
+ ```
94
+ > defrodir <- "C://Users//yusuk//OneDrive...//after defrost"
95
+ > app_file <- "upd_pmab_gr_appl_case_biblog.tsv"
96
+ > file_list <- Sys.glob(file.path(defrodir, "*", "JPWAP", app_file))
97
+ > app <- file_list %>%
98
+ + map_df(~read_tsv(., locale=locale(encoding="UTF-8"), show_col_types=FALSE)) %>%
99
+ + select(2, 20, 28, 43)
100
+ Error in `dplyr::bind_rows()`:
101
+ ! Can't combine `abct_clmt_atty_id` <character> and `abct_clmt_atty_id` <double>.
102
+ Run `rlang::last_error()` to see where the error occurred.
103
+ Warning messages:
104
+ 1: One or more parsing issues, see `problems()` for details
105
+ 2: One or more parsing issues, see `problems()` for details
106
+ 3: One or more parsing issues, see `problems()` for details
107
+
108
+ ```
109
+
110
+ bind_row()を使っていないのにこのエラーが出ました。原因が分からず何から手を付けるかわからない状態です...
111
+
112
+
76
113
  ### 補足情報(FW/ツールのバージョンなど)
77
114
 
78
115
  OSはwindowsを使っています。
116
+
117
+ 自分のコードを実行する際もmelianさんのコードを実行する際も、かなり時間がかかっていました。自分のパソコンのスペックの低さが原因か、それともR環境の設定が原因か、データの主さが原因かはわかりませんが...

1

誤字の修正

2022/10/14 15:20

投稿

maltines
maltines

スコア12

test CHANGED
File without changes
test CHANGED
@@ -1,9 +1,4 @@
1
1
  ### 前提
2
-
3
- ここに質問の内容を詳しく書いてください。
4
- (例)
5
- TypeScriptで●●なシステムを作っています。
6
- ■■な機能を実装中に以下のエラーメッセージが発生しました。
7
2
 
8
3
  RStudioで大学の授業用にデータを取り込みまとめる作業を行っています。
9
4