问题标签 [data-wrangling]

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 投票
3 回答
233 浏览

r - data.table 的条件排序

我有非常大data.table的东西要以这种方式修剪:

  1. 只有一个唯一的 id

  2. 如果同一日志中有除“X”之外的任何其他数据,则其他应保留

  3. 如果只有 X,那么第一个 X 应该保留

  4. 如果除了“X”之外还有不止一个,那么所有这些都应该保留,用逗号分隔,但不是“X”。

样本数据集:

所需输出:

0 投票
1 回答
37 浏览

r - 是否有用于合并或替换转换表中向量元素的 R 函数?

我有两个数据框。第一个是“翻译表”(df1),其中一列中有物种名称,另一列中有编码名称。第二个数据框是一个表格,其中有一列包含物种名称。我想创建一个新列,其编码名称对应于同一行的物种。

df1:

df2:

这是新列的样子:

谢谢您的帮助。

0 投票
1 回答
52 浏览

r - 基于因子变量的数据集子设置,该因子变量生成与因子长度一样多的子集

我正在研究一个数据集(名为“分数”),它只包含数字变量,但还有一个因素表明数字来自哪个国家。所有这些都是一个数据集中的列。

我对使用于子集化的代码部分更加独立感到困惑。例如,在数据集“分数”中,我使用以下内容为每个国家/地区生成一个子集:

我需要做的是让这部分更加独立,这样当不熟悉 R 的人为不同的国家组运行它时,不必总是为每个级别的因素写一行。

也许是一个循环通过因子并创建与其级别一样多的子集?

非常感谢您的任何想法。

Ps 我尝试使用for i in length(scores$Country),但它返回一个包含所有国家的子集,而不是三个。

更新的问题:

你是对的,我一直很不清楚。我的数据集是 1-10 分(意见/看法),代表一组国家的序数数据。我的下一步是为每个国家/地区的所有列计算“NPS- 净推荐值”。到目前为止,我对每个国家/地区进行了子集化,然后对每个国家/地区应用 nps 函数(nps 包),这会产生一个新列表,其中包含每个问题的 NPS 编号(分数列)。执行此操作的代码示例是:

您提出的split方法无需用户为每个国家/地区编写一行代码即可实现子集化。它生成一个数据框列表。但是,当使用 sapply/lapply 计算 nps 时,它会返回警告:Data of class data.frame provided; 转换为数字,元素是 NA。

也许是因为输出列表的维度与列出的数据框 (lst1) 不同?还是因为 nps 不适用于 apply 系列?

您替代 group_by 然后执行 nps 函数会返回 nps 结果,但不执行每个国家/地区的。这就是我用来做的:scores_df %>% group_by(Country) %>% lapply(., nps)

如果有一种方法可以nps处理生成的数据框列表,那split将正是我正在寻找的。

再次感谢。

0 投票
1 回答
329 浏览

r - 根据排序不同的字符向量替换数据框中的列名

我的问题是如何根据字符向量重命名列名,同时将向量的顺序强加到我的数据框上。我已经阅读了所有类似的帖子,但没有回答我的问题。

我正在研究这样的数据框:

理想情况下,我想根据它们的索引(即 q1、q3、q78、q99)对这些列进行排序。然而,这似乎很难。

幸运的是,我还有一个包含有序列名的向量:

将数据框列名称替换cols为显然是不正确的,因为它们的顺序不同。所以我到目前为止达到的地方是:

colnames(df) <- match(colnames(df), cols)

df <- df[,order(names(df))]

它将 替换为colnames(df)后者在 cols 中的位置,但显然我无法对这些数字进行排序,因为 R 不会将它们视为整数(由于 R 不允许数字作为变量的名称)。如果我可以这样做,那么 df 将与 cols 的顺序相同,我只需替换列名。

我怎样才能使这项工作?如果不可能,还有什么可以替代的?

提前致谢。

0 投票
1 回答
26 浏览

r - 编写一个函数,使用 for 循环根据字符向量替换数据集中一列的报告值

我在这里尝试的是构建一个函数,每次我想用它们的实际答案选项替换数据集中的报告值时都可以运行该函数。

假设,我使用以下用于描述汽车颜色的答案选项:

answer_options <- c("blue", "red", "yellow", "green")

然后是包含颜色列的数据集:

data <- data.frame(Animal=c("Parrot", "Pigeon", "Crocodile", "Impala", "Dolphin", "Dinosaur"), Colour=c(0,1,1,2,1,3), Year=c(2018, 2017, 2018, 2019, 2020, 2024))

我已经研究了这里的每个相关问题,但找不到让以下函数用相应的 answer_options 替换报告值的方法(请注意,我可以替换它们,但我的任务是构建一个函数而不是必须每次重复代码块):

现在,如果我运行:

answer.option.replacer(data, 2, answer_options, 4)

它打印替换值的希望列,但实际上并没有在数据中替换它们。任何帮助将不胜感激,因为我对功能不是很有经验。

0 投票
1 回答
111 浏览

r - 根据 R 中的优先级从三列中取值

我有一个如下数据集,基本上我想要一个最后一列(标记为输出),如果存在于 C 列中,如果不在 B 列中,则在 A 中,我认为它可以用 ifelse 完成,但我正在寻找一个整洁的解决方案. 如果没有,那么 ifelse 也可以。

样本数据集

0 投票
1 回答
267 浏览

r - 计算R中每组的观察数

我想根据日期列 A 计算列 D。列 D 应表示按列 B 分组的观察数。

编辑:下面的假数据

R 中的什么函数会像这样创建 D 列?

在此处输入图像描述

0 投票
0 回答
96 浏览

pandas - 州缩写和州名的快速人行横道

今天我第 100 万次拥有一个列出完整州名的数据集。但是,我需要它来列出州邮政编码缩写。这是我编写的代码片段,它使用来自通用网站的数据为我映射了更改。

1)有人知道或想到更好的解决方案吗?

2a)有人知道更好的网络参考吗?使用 USPS 网站(如下所示)似乎无法使用pd.read_html()

2b) 我也很难从pd.read_html()以下 wiki 页面中分离出正确的表格:https ://en.wikipedia.org/wiki/List_of_U.S._state_abbreviations

0 投票
1 回答
79 浏览

r - R:有条件地组合来自相邻行的文本,同时保留相关信息

脚本需要:

a) 合并相邻行中的文本,相邻行的数量可能会有所不同,要合并的行的分组由第一行前面加 NA 和最后一行后面加 NA 确定,

b) 保留行 ID 以供将来检查

c) 保留与要组合的每一相邻行中的一行相关联的数值变量

d) 保留整体秩序

之前和之后的表

我使用 for 循环和与 dplyr 和 stringer 争吵的大量数据实现了这一点。

for 循环是不优雅的,因为我正在努力使用按顺序识别相邻行的逻辑。这并不重要,因为分组变量只是一个帮手——但这让我很恼火。

我还想知道是否有一种更有效的方法可以完全做到这一点,比如使用 rowwise 和 mutate with lead 或 lag。

任何指导或指示将不胜感激。

0 投票
1 回答
102 浏览

r - 如何将平均插补结果从训练集映射到测试集?

我有一个向量:

我尝试创建一个自定义函数,其中向量的结果将估算 NA 值。向量的第一个元素对应于数据框的第一列。这是自定义函数:

但是,当我尝试使用自定义函数时,我无法使用向量的结果。相反,只有 0.5247570 值会估算所有缺失值。

如何确保向量的每个元素与数据框的每个元素对应?

我知道有 MICE 和类似库的解决方案,但我正在尝试制作自己的功能。