问题标签 [splitstackshape]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3537 浏览

r - 使用 sep = "." 在“data.table”的“fread”中

可以fread从“data.table”强制成功"."用作sep值吗?

我正在尝试使用"splitstackshape"fread来加速我的concat.split功能。请参阅此 Gist了解我正在采用的一般方法,以及此问题了解我为什么要进行切换。

我遇到的问题是将点 ( ".") 视为sep. 每当我这样做时,我都会收到“意外字符”错误。

下面的简化示例演示了该问题。

我在当前函数中的解决方法是"."用另一个希望在原始数据中不存在的字符替换,例如"|",但这对我来说似乎有风险,因为我无法预测其他人的数据集中的内容。这是实际的解决方法。

出于本问题的目的,假设数据是平衡的(每行将具有相同数量的“ sep”字符)。我知道使用 a"."作为分隔符并不是最好的主意,但我只是想根据在 SO 上回答的其他 问题来解释其他用户在他们的数据集中可能有什么。

0 投票
3 回答
245 浏览

r - 使用 merge.stack(或重塑)从宽表创建长表

我有一个看起来像这样的数据框:

我想编写一个脚本,对于在 yy_test_20xx 列中没有 NA 的 ID,创建一个新的数据框,其中主题取自列标题、测试名称、测试分数和年份取自列标题. 因此,在此示例中,ID 1 将具有三个条目。预期输出如下所示:

我已经尝试了 reshape 和各种形式的 merge.stack ,从某种意义上说,我得到了一个正确的输出,但我无法很好地理解输入以一直到达那里:

我在重塑方面取得了更大的成功(越来越接近):

0 投票
4 回答
345 浏览

r - 在 R 中拆分列

我是 R 新手,我有一个包含 17 列和超过 1m 行的大数据集。我想通过分隔符“/”将其中一列分成 4 列。R 需要很长时间才能完成以下命令。有没有更好的方法来完成以下。我已经提供了尽可能多的代码信息,并希望得到任何帮助。

0 投票
2 回答
477 浏览

r - 欧拉计划 #22,减 158,055

我目前正在解决 Project Euler 问题 22,它有以下挑战:

使用 names.txt(右键单击并“将链接/目标另存为...”),一个 46K 的文本文件,其中包含超过 5000 个名字,首先按字母顺序对其进行排序。然后计算每个名称的字母值,将该值乘以其在列表中的字母位置以获得名称分数。

例如,当列表按字母顺序排序时,价值 3 + 15 + 12 + 9 + 14 = 53 的 COLIN 是列表中的第 938 个名称。因此,COLIN 将获得 938 × 53 = 49714 的分数。

文件中所有名称分数的总和是多少?

该文件可以使用上面的链接下载。我写了下面的代码来解决这个问题:

我的结果似乎是 158,055(我得到871040227了它应该在的地方871198282)。我已经抽查了其中的一部分,并且似乎名称列表已正确排序,并且名称分数正在正确编译(例如,我也得到了COLIN=49174)。我还阅读了其他在 SO 上解决此问题的线程,但它们主要是在 Python 中,并且问题似乎与我的不同。我的怀疑是names.txt文件以某种方式没有被正确读取,或者我正在使用(concat.splitsplitstackshape包中)拆分文件的df$name.num方法不正确,尽管它似乎工作正常。

有任何想法吗?

此外,任何关于如何改进/简化我的代码的建议都非常受欢迎!

0 投票
1 回答
729 浏览

r - 如何在不执行 sum 或 mean 之类的函数的情况下重塑 data.table(长到宽)?

如何在不执行ordata.table之类的功能的情况下重塑(长到宽)?我在看 dcast/melt/reshape/等。但我没有得到想要的结果。summean

这是我的数据:

原始格式:

所需格式:

我现在做的伎俩:

但是第一个单元格的内容是这样的:

我需要拆分它(我使用 package splitstackshape):

这可能不是最有效的方法......有什么更好的方法?

0 投票
4 回答
707 浏览

r - 从一个字符串变量创建多个虚拟变量

我已经尝试了这个类似问题的几乎所有内容,但我无法得到其他人似乎得到的结果。这是我的问题:

我有一个这样的数据框,列出了每个老师的成绩:

我一直在寻找将teaches变量分成列的解决方案,如下所示:

我理解这个涉及splitstackshape库的解决方案,鉴于回答者的解释,显然已弃用的concat.split.expanded函数应该完全符合我的要求。但是,我似乎无法达到相同的结果:

使用cSplit,我理解它取代了“大多数早期的 concat.split* 函数”,我得到了这个:

我已经尝试使用cSplit's help 并调整每一个参数,但我就是无法拆分。我很感激任何帮助。

0 投票
2 回答
5298 浏览

r - cSplit library(splitstackshape) 总是丢弃列

我正在寻找一种通过分隔符拆分列内容并将表格转换为长格式的方法。我cSplitsplitstackshape包装中找到它几乎正在做我正在寻找的东西。

问题现在与drop选项有关。我希望以某种方式复制我的拆分列,但这不会发生。我做错了吗?有人遇到过这个问题吗?

我不确定我是否做错了什么,但该drop = FALSE选项不适用于我的情况。

这是一个例子:

我所期望的是这样的:

我正在使用版本 1.4.2

0 投票
2 回答
211 浏览

r - 如何防止 data.table 将数字变量强制转换为字符变量而不手动指定这些?

考虑以下数据集:

当我想将最后一列中的字符串拆分为单独的行时,我使用(data.table版本1.9.5+):

但是,当我使用:

我得到了相同的结果,除了所有列都被强制转换为字符变量。问题在于,对于小型数据集,指定不必在参数中拆分的变量不是一个大问题by,但对于具有许多列/变量的数据集,它是一个大问题。我知道可以使用splitstackshape包来做到这一点(正如@ColonelBeauvel 在他的回答中提到的那样),但我正在寻找data.table解决方案,因为我想将更多操作链接到此。

如果不手动指定不必在参数中拆分的变量,如何防止这种情况发生by

0 投票
1 回答
88 浏览

r - 将不相关/相似的观察合并为一个(其他)

在对每个社区的感知问题进行调查后,我得到了这个数据框。由于该调查有不同的选项可供选择 + 一个开放式的,因此开放式问题的结果通常是不相关的(见下文):

导致这个数据框:

正如您所看到的,第 9 行之后的结果大多是不相关的(每个选项只有一个或两个受访者),所以我希望将它们分组为一个选项(例如“其他”),而不会失去与邻里的关系(即为什么我现在不能重命名这些值)。有什么建议么?

0 投票
1 回答
1395 浏览

r - 加载 splitstackshape/data.frame 和 tidyr/dplyr 时运行 cSplit 时出错

示例数据文件(csv 格式)

我正在尝试自动化一些名册挖掘。在某一时刻,我需要根据带有分隔符的名称拆分行,因此 splitstackshape 中的 cSplit 是完美的。我还在拆分之前和之后使用了一堆 dplyr 数据整形。

加载的库:

问题是当我在 data.frame 之后加载 dplyr 时,我收到以下消息:

然后当我尝试使用 cSplit 时:

我收到此错误:

我已经尝试了各种排列 - 只有在加载 data.frame 和 dplyr 时(以任一顺序),并且在没有 dplyr 的情况下重新启动 R 或从不加载它会使 cSplit 正常工作时才会发生此错误。

不过,我需要能够同时使用两者,并且分离 dplyr 并没有帮助(只会抛出丢失的 dplyr 错误)。

我看过这个帖子,但他们似乎得出了数据已损坏的结论。这似乎很可能是因为如果我在玩具数据集上运行,

它工作正常。但我不知道如何解决这种“腐败”。