-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmake.js
87 lines (82 loc) · 7.32 KB
/
make.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import { CSV } from "https://js.sabae.cc/CSV.js";
import { list } from "./list.js";
import { DateTime } from "https://js.sabae.cc/DateTime.js";
// 福井県
// const names = "会員ID,回答日時,満足度,NPS,都道府県,年代,性別,回答エリア".split(",");
const map = {
"施設": "施設",
"タイムスタンプ": "回答日時",
//"個人情報保護の方針について",
"全行程での宿泊数をお答えください(石川県以外での宿泊も含みます)": "宿泊数(全行程)",
"石川県内での宿泊数をお答えください": "宿泊数(県内)",
"石川県内での宿泊エリアをお答えください": "宿泊エリア(県内)",
"石川県外での宿泊エリアをお答えください": "宿泊エリア(県外)",
"今回はどなたと石川県を訪れていますか?": "同行者",
"今回の石川県の訪問目的は何ですか?(複数選択可)": "宿泊目的",
"石川県外から訪れた方にお聞きします。今回は主にどのような交通手段で石川県に来られましたか。※2つまでお答えください": "交通手段",
"次に、 当施設 を訪れる際に利用した主な交通手段をお答えください。※2つまでお答えください": "交通手段(施設)",
"前の設問で「自家用車」「徒歩」以外を選択された方にお聞きします。当該の交通手段をお使いいただいた満足度をお聞かせください。": "満足度(交通手段)",
"上記満足度の理由について、具体的に教えてください": "満足度理由(交通手段)",
"今回の旅行またはお出かけにおける、石川県内での具体的な宿泊費をお答えください。(予定でも可/1人あたり)": "一人あたり宿泊費",
"今回の旅行またはお出かけにおける石川県内での具体的な交通費をお答えください。(予定でも可/1人あたり)\n※石川県外からの交通費、石川県内での交通費を含む。": "一人あたり交通費",
"今回の旅行またはお出かけにおける、石川県内での具体的な現地消費額をお答えください。(予定でも可/1人あたり)\n※飲食、買い物、体験・観光などの消費額合計\n※宿泊費、交通費を除く": "一人あたり消費額(県内)",
"これまでに 当施設 には何度訪れたことがありますか。": "訪問回数",
"今回 当施設 を訪れる際に参考にした情報源は何ですか?(複数選択可)": "情報源",
"当施設 の前に訪れた主な場所(施設やスポット名称、エリアなど)を、次の名称リストからひとつ選んでください。\n\n※名称リストにない場所の場合は、「選択なし/該当施設なし」を選び、次の設問でお答えください。\n※当施設 が最初に訪れた場所である場合は、「選択なし/該当施設なし」をお選びください。": "訪問施設(前)",
"上記名称リストにない場合について、具体的にお答えください。(前)": "訪問施設(前)自由記入",
"当施設 の後に訪れる予定の場所(施設やスポット名称、エリア)を、次の名称リストからひとつ選んでください\n\n※名称リストにない場所の場合は、「選択なし/該当施設なし」を選び、次の設問でお答えください。\n※当施設 が最後に訪れた場所である場合は、「選択なし/該当施設なし」をお選びください。": "訪問施設(後)自由記入",
"上記名称リストにない場合について、具体的にお答えください。(後)": "訪問施設(後)自由記入",
"当施設 における、消費総額をお答えください。(予定でも可/1人あたり)": "一人あたり消費額(施設)",
"当施設 における、商品・サービスの満足度をお答えください": "満足度(商品・サービス)",
"上記満足度の理由につい具体的に教えてください。(サービス)": "満足度理由(商品・サービス)",
"当施設 における、施設全体の満足度をお答えください。": "満足度(施設)",
"上記満足度の理由につい具体的に教えてください。(施設全体)": "満足度理由(施設)",
"当施設 において、不便を感じたり困ったことはありましたか。": "不便(施設)",
"上記不便を感じたり、困ったことについて具体的に教えてください": "不便理由",
"あなたは石川県への旅行または 当施設 へのお出かけを、どのくらい家族や友人に薦めたいと思いますか。\n0(全く薦めたくない)~10(ぜひ薦めたい)でお答えください。": "NPS",
"あなたは石川県への旅行または 当施設 へのお出かけを、どのくらい家族や友人に薦めたいと思いますか。 0(全く薦めたくない)~10(ぜひ薦めたい)でお答えください。": "NPS",
"今回の旅行またはおでかけにおいて、特に人に薦めたいと感じたものとその理由について具体的に教えてください。": "推薦理由",
"あなたが求めている 当施設 の飲食、土産、アクティビティについて、ご自由にご意見をお聞かせください": "自由意見(施設)",
"今後、再び石川県を訪れたいと思いますか": "リピート意向",
"あなたが求めている石川県の飲食、土産、アクティビティについて、ご自由にご意見をお聞かせください。\n\n(※必須項目です。無ければ「特になし」とご記入ください)": "自由意見(県内)",
"性別をお答えください": "性別",
"生まれた年をお答えください": "生年",
"お住いの都道府県をお答えください": "都道府県",
"お住いの市区町村をお答えください\n例:新宿区": "市区町村",
"世帯年収をお答えください": "世帯年収",
"アンケートに回答しようと思った動機をお答えください": "回答動機",
};
//Object.keys(map).forEach(i => console.log(i.replace(/\n/g, "\\n")));
// Deno.exit();
const items = [];
for (const l of list) {
const [name, gid, nameja] = l;
const json = await CSV.fetchJSON(name + ".csv");
//Object.keys(json[0]).forEach(i => console.log(i.replace(/\n/g, "\\n")));
json.forEach(i => {
i.タイムスタンプ = new DateTime(i.タイムスタンプ + "+09:00").toString();
if (i.個人情報保護の方針について == "同意する") {
delete i.個人情報保護の方針について;
const o = { ID: "", 回答エリア: nameja };
for (const name in i) {
const name2 = map[name];
if (name2) {
o[name2] = i[name];
} else {
o[name] = i[name];
}
}
const n = o.NPS.indexOf("(");
if (n >= 0) {
o.NPS = o.NPS.substring(0, n).trim();
}
items.push(o);
} else {
throw new Error("個人情報同意しないデータ");
}
});
}
items.sort((a, b) => a.回答日時.localeCompare(b.回答日時));
items.forEach((i, idx) => i.ID = idx + 1);
await Deno.writeTextFile("all.csv", CSV.stringify(items));
//console.log(items[0]);