- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这样一个数据框
Letter Number1 Number2 Number3 Type
A 4 5 3 10
B 10 22 24 20
C 50 24 100 30
D 60 32 12 40
我想使用 mutate_each 将 number1、number2 和 number3 除以 2,而不对 Letter 和 type 做任何事情。有没有轻松的一天可以做到这一点?
这就是我希望最终的 DF 看起来的样子
Letter Number1 Number2 Number3 Type
A 2 2.5 1.5 10
B 5 11 12 20
C 25 12 50 30
D 30 16 6 40
谢谢!
最佳答案
我们可以使用 starts_with
或 matches
选择“Number”列并将这些列除以 2。
library(dplyr)
mutate_each(df1, funs(./2), starts_with('Number'))
# Letter Number1 Number2 Number3 Type
#1 A 2 2.5 1.5 10
#2 B 5 11.0 12.0 20
#3 C 25 12.0 50.0 30
#4 D 30 16.0 6.0 40
正如@Cotton.Rockwood 在评论中建议的那样,在较新版本的 dplyr
(0.7.6
) 中,我们可以使用 mutate_at
(用于更改列的子集)或 mutate_all
(用于更改所有列)
df1 %>%
mutate_at(vars(starts_with("Number")), funs(./2))
或者使用data.table
,我们将'data.frame'转换为'data.table'(setDT(df1)
),得到以开头的列名使用'Number'('nm1'),为'nm1'分配新值即。除以“2”之后。
library(data.table)#v1.9.4+
setDT(df1)
nm1 <- grep('^Number', names(df1), value=TRUE)
df1[, (nm1):= lapply(.SD, `/`, 2), .SDcols=nm1]
或者使用 data.table
的多列更有效的方法是使用 set
。
for(j in nm1){
set(df1, i=NULL, j=j, value=df1[[j]]/2)
}
df1 <- structure(list(Letter = c("A", "B", "C", "D"), Number1 = c(4L,
10L, 50L, 60L), Number2 = c(5L, 22L, 24L, 32L), Number3 = c(3L,
24L, 100L, 12L), Type = c(10L, 20L, 30L, 40L)), .Names = c("Letter",
"Number1", "Number2", "Number3", "Type"), class = "data.frame",
row.names = c(NA, -4L))
关于r - 使用 mutate_each 将 R 中的一组行除以 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31517886/
我使用 tidyverse 包中的函数 mutate_each,但收到一条消息,该函数已被弃用。我想使用其他未弃用的函数来更改字段类型。 下面是我目前如何使用 mutate_each 的可重现示例。
我对使用 mutate_each 将 function 应用到我的 data.frame 有疑问 我有一个函数可以计算两个波 y1 和 y2 之间的相移。我想将此函数应用于我的数据并创建名为 phas
我想通过 dplyr::mutate_each 对所有列应用转换,例如 library(dplyr) mult % mutate_each(funs(mult(.,2))) # Multiply
我想将几列中每一列中的所有值设置为NA。通常,如果我想使用相同的算法修改多个列,我会使用 dplyr 中的 mutate_each 。从算法的角度来看,函数“x 映射到 null”似乎定义得很明确,所
有没有办法使用dplyr::mutate_each实现下面的转换? data.frame(x1 = 1:5, x2 = 6:10, y1 = rnorm(5), y2 = rnorm(5)) %>%
我正在解决 sparklyr 中的集群问题。训练集中的许多变量是在不同的尺度上测量的,因此存在数量级的差异。根据最佳实践,我正在尝试扩展和集中数据。 有许多不同的公式可以做到这一点,最传统的是 (X
我使用 dplyr包裹在 R .使用我想创建一个函数 require(dplyr) aFunction % mutate_each(funs(aFunction(., ...))) } 然后称之为 d
我尝试将 dplyr::mutate_each 与一些外部函数一起使用,而不附加实际的库 dplyr::tbl_df(iris) %>% dplyr::mutate_each(dplyr::f
在这种情况下,我尝试将 quantile 函数应用于此示例数据框: DF % mutate_each(funs(quantile(DF,c(0.98), na.rm=TRUE))) 但是 muta
我想在对 summarize_each 的调用中使用匿名函数: # how to use an anonymous function in dplyr df_foo = data_frame(x =
我有一个数据框,其中第一列作为分类标识符,第二列作为频率值,其余列作为原始数据计数。我想将所有计数列乘以频率列,但不是前两列。 所有原始计数列均以大写字母开头,后跟句号,例如“L.abd”、T.xyz
我有一个包含 10 万多行和约 200 列的 dplyr 数据框。大约有 15 列包含 Excel 格式的日期值(自 1900 年 1 月 1 日以来的天数),它们的列名称包含 date 字符串,这使
这个问题已经有答案了: Using anonymous functions with summarize_each or mutate_each (1 个回答) 已关闭 5 年前。 众所周知,可以调用
我有一个名为 test 的小数据集,我想在其中对向量 cm 中定义的列执行一些变异操作。 安装和加载一些包 require(devtools) devtools::install_github("
我有这样一个数据框 Letter Number1 Number2 Number3 Type A 4 5 3 10 B 10
我在这里有点沮丧......所以我有一个数据集需要缩放变量。我有超过 44 个变量,但意识到对所有变量的操作次数可能消耗了太多内存(不太可能,因为我有 8 Gb RAM,但我不知道)。 当我执行以下
以下面的例子为例。 library(dplyr) temp % mutate_each(funs(mean, median)) 检查 temp_each 的名称,我们看到 > names(te
尝试解决时 this problem我遇到了 mutate_each 的问题的 dplyr .我想在函数中使用它并将参数传递给它。 funs()成功但不适用于 matches() . 让我展示一个简单
我最近遇到了 dplyr 并且 - 作为一个新手 - 非常喜欢它。因此,我尝试将我的一些 base-R 代码转换为 dplyr 代码。 在处理空中交通管制数据时,我正在努力使用 lubridate 和
在 Python Pandas 中,我想通过在多个列上执行多个聚合函数来添加列,例如 R dplyr mutate_each。比如Python Pandas能否实现和下面R脚本一样的处理? R dpl
我是一名优秀的程序员,十分优秀!