标签: data-transform

使用 dplyr 的 _if() 函数,例如带有否定谓词函数的 mutate_if()

根据的文档dplyr

# The _if() variants apply a predicate function (a function that
# returns TRUE or FALSE) to determine the relevant subset of
# columns.
# mutate_if() is particularly useful for transforming variables from
# one type to another
iris %>% mutate_if(is.factor, as.character)
Run Code Online (Sandbox Code Playgroud)

那么如何使用逆形式呢?我想将所有非数字值转换为字符,所以我想到这样做:

iris %>% mutate_if(!is.numeric, as.character)
#> Error in !is.numeric : invalid argument type
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。或者只选择所有非数字变量:

iris %>% select_if(!is.numeric)
#> Error in !is.numeric : invalid argument type
Run Code Online (Sandbox Code Playgroud)

也不行。

如何对,和 等函数使用否定dplyrmutate_if()select_if() …

r dplyr data-transform

4
推荐指数
1
解决办法
672
查看次数

我们可以在 DBT(数据构建工具)中调用任何外部 REST API 吗?

我正在从事一些分析工作,我们需要将数据从一个来源转换到另一个来源,我们正在使用DBT进行转换。仅可通过 REST API 使用的数据之一。所以我的问题是我们可以在 dbt 文件中调用外部 API 并从其响应中提取字段吗?我们有东西吗?

api transformation data-analysis data-transform dbt

4
推荐指数
1
解决办法
6172
查看次数

从R中的字符中提取整数

我在 R 中。我只想从 df1 中提取数字。我有例如: df1 <- data.frame( column1 = c("Any[12, 15, 20]", "Any[22, 23, 30]"), column2 = c("Any[4, 17]", "Any[]"), stringsAsFactors = F )

我想要一个新的 df,它将括号内的整数乘以行号,并保留与其相对应的列信息。

例如 new_df 可能看起来像

时间 渠道
12 第1列
15 第1列
20 第1列
44 第1列
46 第1列
60 第1列
8 列2
34 列2

我不需要保留任何“NA”值,例如如果 Any[] 为空。有人知道这是否可能吗?我有大量这种格式的数据,所以我不能真正手动做很多事情。干杯!

我已经尝试过了: new_df$Time <- as.integer(df1$column1) 那只是空白。

我也尝试过: new_df$Time <- str_extract_all(new_df$Time, "\\d+" ) %>% lapply(function(x) as.integer(x)) %>% sapply(function(x) if.else(length(x) >0, x, NA) )

然后才返回每个括号内的第一个整数。例如

时间 渠道
12 第1列
44 第1列
8 …

string r dataframe data-transform

4
推荐指数
1
解决办法
100
查看次数

在 R 中将日期时间标记为早上、下午和晚上

我如何为给定的时间戳标记一天中的时间(早上、下午和晚上)?

初始数据

Id            Time_stamp
3083188c     2016-08-29 13:10:51
924d500e     2016-08-29 09:22:33
ad4dd7ff     2016-08-25 20:29:35
Run Code Online (Sandbox Code Playgroud)

最终数据

 Id            Time_stamp              Time_of_day
3083188c     2016-08-29 13:10:51        Afternoon
924d500e     2016-08-29 09:22:33        Morning
ad4dd7ff     2016-08-25 20:29:35        Evening
Run Code Online (Sandbox Code Playgroud)

time r wrangle data-transform

3
推荐指数
1
解决办法
2730
查看次数

Azure 表存储 - 删除列

我认为这是不可能的,但是无论我问这个问题,也许我错过了一些东西。

我们可以在 azure 表中添加/删除列吗?

例如,默认情况下我们会得到这些列:PartitionKey、RowKey、Timestamp、ETag。例如,我可以添加另外 3 个:名字、姓氏、电子邮件列吗?

之后我将插入一些值,我想删除列电子邮件并添加列地址。我们可以这样做吗?

azure azure-table-storage data-transform

2
推荐指数
2
解决办法
4485
查看次数

Azure 数据工厂/聚合为逗号分隔的字符串

我想使用Aggregate.

这是场景:

我有一张表,其值如下:

Key | Value
1   | v1
1   | v2
2   | v1
2   | v3
Run Code Online (Sandbox Code Playgroud)

执行聚合后,我希望输出如下:

Key | Value
1   | v1, v2
2   | v1, v3
Run Code Online (Sandbox Code Playgroud)

我试图找到String_AggADF 中没有的功能。

ssis etl azure azure-data-factory data-transform

2
推荐指数
1
解决办法
1173
查看次数

加速或替代 group by 和 dplyr 中的滞后

我注意到这个操作对于看似简单的计算来说非常耗时。它可能解释了完成当前 R 脚本的所有时间中超过 60% 的时间。

实际数据包含 about500,000 rows和 about 100,000 unique ids(分组依据的列)。

用于计算的列类型lag differencelubridate::dmy_hms。因此,滞后差异是指seconds时间差异。

我认为这些可能在为什么计算需要这么长时间的原因中发挥了作用,但我也很好奇我是否可以以不同的方式重写以下代码,或者R base如果它更快的话可能只是使用(也许以进行一些数据类型体操来确保其他 dplyr类似操作保持不变)

dief <- tibble(id = rep(letters,4), time = 1:length(id) + sample(1:30, length(id),replace = T))
dief %>%
  arrange(id) %>%
  group_by(id) %>% 
  mutate(time_difference = (time - lag(time)))
Run Code Online (Sandbox Code Playgroud)

r dplyr data-transform

0
推荐指数
1
解决办法
773
查看次数

log10逆变换:-10*log10(x)

我正在尝试将 -10*log10(x) 转换为 y 但不确定我的代码。

我的代码如下所示:

y = 1/log(x) * -10
Run Code Online (Sandbox Code Playgroud)

有人能证实吗?

logging r transformation data-transform

0
推荐指数
1
解决办法
628
查看次数

在 Clojure 中将字符串向量转换为哈希映射

我有以下数据结构:

["a 1" "b 2" "c 3"]

我如何将其转换为哈希映射?

我想要以下数据结构:

{:a 1 :b 2 :c 3}

clojure data-structures data-transform

0
推荐指数
1
解决办法
613
查看次数