# 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() …
我正在从事一些分析工作,我们需要将数据从一个来源转换到另一个来源,我们正在使用DBT进行转换。仅可通过 REST API 使用的数据之一。所以我的问题是我们可以在 dbt 文件中调用外部 API 并从其响应中提取字段吗?我们有东西吗?
我在 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 … |
我如何为给定的时间戳标记一天中的时间(早上、下午和晚上)?
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) 我认为这是不可能的,但是无论我问这个问题,也许我错过了一些东西。
我们可以在 azure 表中添加/删除列吗?
例如,默认情况下我们会得到这些列:PartitionKey、RowKey、Timestamp、ETag。例如,我可以添加另外 3 个:名字、姓氏、电子邮件列吗?
之后我将插入一些值,我想删除列电子邮件并添加列地址。我们可以这样做吗?
我想使用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 中没有的功能。
我注意到这个操作对于看似简单的计算来说非常耗时。它可能解释了完成当前 R 脚本的所有时间中超过 60% 的时间。
实际数据包含 about500,000 rows和 about 100,000 unique ids(分组依据的列)。
用于计算的列类型lag difference为lubridate::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) 我正在尝试将 -10*log10(x) 转换为 y 但不确定我的代码。
我的代码如下所示:
y = 1/log(x) * -10
Run Code Online (Sandbox Code Playgroud)
有人能证实吗?
我有以下数据结构:
["a 1" "b 2" "c 3"]
我如何将其转换为哈希映射?
我想要以下数据结构:
{:a 1 :b 2 :c 3}