{"id":507,"date":"2019-09-19T13:18:29","date_gmt":"2019-09-19T04:18:29","guid":{"rendered":"https:\/\/gri.jp\/media\/entry\/507"},"modified":"2022-05-27T14:34:19","modified_gmt":"2022-05-27T05:34:19","slug":"2019-09-19-131829","status":"publish","type":"post","link":"https:\/\/gri.jp\/media\/entry\/507","title":{"rendered":"Tableau Prep\u3068R\u9023\u643a"},"content":{"rendered":"<h1>Tableau Prep and R Integration<\/h1>\n<p>Tableau Prep\u3068R\u304c\u9023\u643a\u3067\u304d\u308b\u3068\u805e\u3044\u3066\u3001\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u63a2\u3057\u305f\u306e\u3067\u3059\u304c\u3001\u4e0a\u624b\u304f\u898b\u3064\u304b\u3089\u306a\u304b\u3063\u305f\u306e\u3067\u30d9\u30fc\u30bf\u7248\u306e\u30c6\u30b9\u30c8\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u53c2\u8003\u306b\u8a2d\u5b9a\u3057\u3066\u307f\u307e\u3057\u305f\u3002<br \/>\n\u7279\u306b\u5b9f\u7528\u6027\u306e\u3042\u308b\u30c6\u30b9\u30c8\u5185\u5bb9\u3067\u306f\u306a\u3044\u3067\u3059\u304c\u3001\u52d5\u4f5c\u78ba\u8a8d\u7528\u3067\u3059\u3002<\/p>\n<h2><strong>\u4e8b\u524d\u6e96\u5099<\/strong><\/h2>\n<ol>\n<li>Tableau Prep 2019.3\u4ee5\u4e0a\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/li>\n<li>R\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\uff08RStudio\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304a\u3044\u305f\u65b9\u304c\u826f\u3044\uff09<\/li>\n<li>R or RStudio\u3067RServe\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/li>\n<li>R or RStudio\u3067RServe\u3092\u8d77\u52d5<\/li>\n<\/ol>\n<h3><strong>RServe\u306e\u8d77\u52d5<\/strong><\/h3>\n<p>\u4e8b\u524d\u6e96\u50993\u307e\u3067\u304c\u7d42\u308f\u3063\u3066\u3044\u308b\u524d\u63d0\u3067\u3001\u4e0b\u8a18\u306e\u30b3\u30de\u30f3\u30c9\u3067R\u306f\u5916\u90e8\u304b\u3089\u306e\u53d7\u4ed8\u3092\u53ef\u80fd\u306b\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"code lang-r\" data-lang=\"r\" data-unlink=\"\"><span class=\"synPreProc\">library<\/span><span class=\"synSpecial\">(<\/span><span class=\"synConstant\">\"Rserve\"<\/span><span class=\"synSpecial\">)<\/span>\r\nRserve<span class=\"synSpecial\">()<\/span>\r\n<\/pre>\n<h2><strong>\u30b7\u30ca\u30ea\u30aa<\/strong><\/h2>\n<p>\u6570\u5024\u30c7\u30fc\u30bf\u306e\uff08X\u5217\u3068Y\u5217\uff09\u304c\u3042\u308bCSV\u30d5\u30a1\u30a4\u30eb\uff08test.csv\uff09\u3092Prep\u3067\u8aad\u307f\u8fbc\u307f\u3001R\u306b\u3066X\u5217\u3068Y\u5217\u3092\u52a0\u7b97\u3057\u3066Z\u5217\u3092\u542b\u3093\u3060\u30c7\u30fc\u30bf\u30d5\u30ec\u30fc\u30e0\u3092Prep\u306b\u623b\u3059\u51e6\u7406\u3067\u3042\u308b\u3001<\/p>\n<img decoding=\"async\" class=\"hatena-fotolife alignnone\" title=\"f:id:gri-blog:20190919130250j:plain\" src=\"\/media\/wp\/wp-content\/uploads\/2021\/08\/20190919130250.jpg\" alt=\"f:id:gri-blog:20190919130250j:plain\" \/>\n<h3>R\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u66f8\u3044\u3066\u304a\u304f\u3002<\/h3>\n<p>\u30b7\u30ca\u30ea\u30aa\u3092\u6e80\u305f\u3059\u305f\u3081\u306b\u3001R\u306e\u30b3\u30de\u30f3\u30c9\u30d5\u30a1\u30a4\u30eb\uff08futest.R\uff09\u3092\u4f5c\u3063\u3066\u304a\u304d\u307e\u3059\u3002<br \/>\n\u3053\u3053\u3067\u306f\u3001\u3053\u3093\u306a\u30b3\u30de\u30f3\u30c9\u3092\u66f8\u3044\u3066\u307e\u3059\u3002<\/p>\n<pre class=\"code lang-r\" data-lang=\"r\" data-unlink=\"\">getOutputSchema <span class=\"synStatement\">&lt;-<\/span> <span class=\"synType\">function<\/span><span class=\"synSpecial\">()<\/span> <span class=\"synSpecial\">{<\/span>\r\n<span class=\"synStatement\">return<\/span> <span class=\"synSpecial\">(<\/span><span class=\"synType\">data.frame<\/span><span class=\"synSpecial\">(<\/span>\r\nx <span class=\"synStatement\">=<\/span> prep_int<span class=\"synSpecial\">(),<\/span>\r\ny <span class=\"synStatement\">=<\/span> prep_int<span class=\"synSpecial\">(),<\/span>\r\nz <span class=\"synStatement\">=<\/span> prep_int<span class=\"synSpecial\">()));<\/span>\r\n<span class=\"synSpecial\">}<\/span>\r\nplus <span class=\"synStatement\">&lt;-<\/span> <span class=\"synType\">function<\/span><span class=\"synSpecial\">(<\/span>df<span class=\"synSpecial\">){<\/span>\r\nout <span class=\"synStatement\">&lt;-<\/span> df<span class=\"synSpecial\">$<\/span>x <span class=\"synStatement\">+<\/span> df<span class=\"synSpecial\">$<\/span>y\r\n<span class=\"synStatement\">return<\/span><span class=\"synSpecial\">(<\/span><span class=\"synType\">data.frame<\/span><span class=\"synSpecial\">(<\/span>x<span class=\"synStatement\">=<\/span>df<span class=\"synSpecial\">$<\/span>x<span class=\"synSpecial\">,<\/span> y<span class=\"synStatement\">=<\/span>df<span class=\"synSpecial\">$<\/span>y<span class=\"synSpecial\">,<\/span> z<span class=\"synStatement\">=<\/span>out<span class=\"synSpecial\">))<\/span>\r\n<span class=\"synSpecial\">}<\/span>\r\n<\/pre>\n<p>getOutputSchema\u306fR\u304b\u3089\u306e\u51fa\u529b\u306e\u30b9\u30ad\u30fc\u30de\u3068\u3057\u3066data.frame\u3092x, y, z\u3092\u5168\u3066int\u578b\u3067\u8fd4\u3059\u611f\u3058\u3067\u3059\u3002<br \/>\n\u307e\u305f\u3001plus\u306fprep\u304b\u3089\u30c7\u30fc\u30bf\u3092df\u3068\u3057\u3066R\u3067\u8aad\u307f\u8fbc\u307f\u3001x\u3068y\u306e\u5217\u3092\u8db3\u3057\u305f\u3082\u306e\u3092out\u3068\u3044\u3046\u30d9\u30af\u30c8\u30eb\u3067\u6301\u3061\u3001\u30c7\u30fc\u30bf\u30d5\u30ec\u30fc\u30e0\u3067x, y, z\u3067\u8fd4\u3059\u611f\u3058\u3067\u3059\u3002<\/p>\n<h3>Prep\u3067R\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u8aad\u307f\u8fbc\u3080\u3002<\/h3>\n<img decoding=\"async\" class=\"hatena-fotolife\" title=\"f:id:gri-blog:20190919130943j:plain\" src=\"\/media\/wp\/wp-content\/uploads\/2021\/08\/20190919130943.jpg\" alt=\"f:id:gri-blog:20190919130943j:plain\" \/>\n<p>Prep\u3067test.csv\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u307f\u3001\uff0b\u30dc\u30bf\u30f3\u304b\u3089\u300c\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u8ffd\u52a0\u300d\u3092\u62bc\u3057\u307e\u3059\u3002<\/p>\n<img decoding=\"async\" class=\"hatena-fotolife aligncenter\" title=\"f:id:gri-blog:20190919131108j:plain\" src=\"\/media\/wp\/wp-content\/uploads\/2021\/08\/20190919131108.jpg\" alt=\"f:id:gri-blog:20190919131108j:plain\" \/>\n<p>\u4f55\u3082\u3057\u3066\u3044\u306a\u3044\u72b6\u614b\u306a\u306e\u3067\u3001\u623b\u308a\u5024\u3068\u3057\u3066\u306ex\u3068y\u306f\u4f55\u3082\u898b\u3048\u306a\u3044\u72b6\u614b\u3002<\/p>\n<img decoding=\"async\" class=\"hatena-fotolife aligncenter\" title=\"f:id:gri-blog:20190919131307j:plain\" src=\"\/media\/wp\/wp-content\/uploads\/2021\/08\/20190919131307.jpg\" alt=\"f:id:gri-blog:20190919131307j:plain\" \/>\n<p>Rserve\u30b5\u30fc\u30d0\u306b\u63a5\u7d9a\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u3001\u30b5\u30fc\u30d0\u30fc\u3084\u30dd\u30fc\u30c8\u306e\u60c5\u5831\u3092\u8a18\u8ff0\u3057\u3066\u3001\u30b5\u30a4\u30f3\u30a4\u30f3\u306e\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u307e\u3059\u3002<br \/>\nTableau Desktop\u306e\u3088\u3046\u306b\u63a5\u7d9a\u30c6\u30b9\u30c8\u30dc\u30bf\u30f3\u304c\u306a\u3044\u306e\u3067\u3001Tableau Desktop\u3067\u30c6\u30b9\u30c8\u63a5\u7d9a\u3092\u3057\u3066\u304a\u304f\u306e\u304a\u3059\u3059\u3081\u3067\u3059\u3002<\/p>\n<img decoding=\"async\" class=\"hatena-fotolife aligncenter\" title=\"f:id:gri-blog:20190919131551j:plain\" src=\"\/media\/wp\/wp-content\/uploads\/2021\/08\/20190919131551.jpg\" alt=\"f:id:gri-blog:20190919131551j:plain\" \/>\n<p>\u300c\u53c2\u7167\u300d\u30dc\u30bf\u30f3\u304b\u3089futest.R\u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e\u3057\u3066\u3001\u95a2\u6570\u306bplus\u3068\u8a18\u8ff0\u3057\u307e\u3059\u3002<br \/>\n\u3059\u308b\u3068\u8a08\u7b97\u304c\u3044\u304d\u306a\u308a\u8d70\u308a\u3001z\u5217\u3068\u3068\u3082\u306b\u8a08\u7b97\u7d50\u679c\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002<\/p>\n<h3>Tableau Prep and Python\u9023\u643a\u306e\u4f8b<\/h3>\n<p><iframe class=\"embed-card embed-webcard\" style=\"display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;\" title=\"Tableau Prep Builder 2019.3 \u03b2\u304b\u3089 Python\u3092\u5b9f\u884c(Tabpy\u9023\u643a)\u3057\u3066\u307f\u3088\u3046\uff01 \u2013 Tableau\u304b\u3089\u59cb\u3081\u308b\u30c7\u30fc\u30bf\u30b5\u30a4\u30a8\u30f3\u30b9\" src=\"https:\/\/hatenablog-parts.com\/embed?url=http%3A%2F%2Flovedata.main.jp%2F2019%2F07%2F13%2Ftableau-prep-builder-tabpy%2F\" frameborder=\"0\" scrolling=\"no\"><\/iframe><cite class=\"hatena-citation\"><a href=\"http:\/\/lovedata.main.jp\/2019\/07\/13\/tableau-prep-builder-tabpy\/\">lovedata.main.jp<\/a><\/cite><\/p>\n<p><iframe class=\"embed-card embed-webcard\" style=\"display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;\" title=\"Introducing support for custom R and Python scripts in Tableau Prep flows\" src=\"https:\/\/hatenablog-parts.com\/embed?url=https%3A%2F%2Fwww.tableau.com%2Fabout%2Fblog%2F2019%2F8%2Fintroducing-support-custom-r-and-python-scripts-tableau-prep-flows\" frameborder=\"0\" scrolling=\"no\"><\/iframe><cite class=\"hatena-citation\"><a href=\"https:\/\/www.tableau.com\/about\/blog\/2019\/8\/introducing-support-custom-r-and-python-scripts-tableau-prep-flows\">www.tableau.com<\/a><\/cite><\/p>\n<p><iframe class=\"embed-card embed-webcard\" style=\"display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;\" title=\"Python in Tableau Prep: simple useful scripts | VizPainter\" src=\"https:\/\/hatenablog-parts.com\/embed?url=https%3A%2F%2Fvizpainter.com%2Fpythonintableauprep%2F\" frameborder=\"0\" scrolling=\"no\"><\/iframe><cite class=\"hatena-citation\"><a href=\"https:\/\/vizpainter.com\/pythonintableauprep\/\">vizpainter.com<\/a><\/cite><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tableau Prep and R Integration Tableau Prep\u3068R\u304c\u9023\u643a\u3067\u304d\u308b\u3068\u805e\u3044\u3066\u3001\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u63a2\u3057\u305f\u306e\u3067\u3059\u304c\u3001\u4e0a\u624b\u304f\u898b\u3064\u304b\u3089\u306a\u304b\u3063\u305f\u306e\u3067\u30d9\u30fc\u30bf\u7248\u306e\u30c6\u30b9\u30c8\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u53c2\u8003\u306b\u8a2d\u5b9a\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n","protected":false},"author":1,"featured_media":2179,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,124],"tags":[],"class_list":["post-507","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-datascience","category-tableau"],"acf":[],"meta_field":{"_edit_lock":["1684298494:6"],"_edit_last":["44"],"_wp_page_template":["default"],"memo":["\u306a\u3057"],"_pv_count":["a:24:{i:7;i:22;i:8;i:33;i:16;i:46;i:14;i:54;i:23;i:27;i:1;i:198;i:11;i:37;i:17;i:45;i:19;i:19;i:22;i:27;i:4;i:30;i:6;i:22;i:12;i:40;i:15;i:52;i:0;i:27;i:10;i:32;i:9;i:40;i:21;i:35;i:18;i:45;i:5;i:31;i:20;i:21;i:3;i:66;i:13;i:41;i:2;i:87;}"],"pv_count":["1077"],"_thumbnail_id":["2179"],"hidden_toppage":["0"],"_hidden_toppage":["field_61933136630d2"],"note_url":[""],"_note_url":["field_61243c8278b90"]},"_links":{"self":[{"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/posts\/507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/comments?post=507"}],"version-history":[{"count":5,"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/posts\/507\/revisions"}],"predecessor-version":[{"id":7360,"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/posts\/507\/revisions\/7360"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/media\/2179"}],"wp:attachment":[{"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/media?parent=507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/categories?post=507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gri.jp\/media\/wp-json\/wp\/v2\/tags?post=507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}