修改数据框中的变量,仅适用于某些水平的因子(可能使用dplyr)

三角洲IV

样本df:

df <- data.frame(x = c(runif(10,0,2*pi),runif(10,0,360)), group = gl(n = 2, k = 10, labels =c("A","B")))

我只想修改xA(将其转换为度)。随着base我刚做:

df <- within(df,x[group == "A"] <- x[group == "A"]*180/pi)

我想知道是否有办法做到这一点dplyr这是错误的:

df <- df %>% filter(group == "A") %>% mutate(x = x*180/pi)

因为它仅返回dfwhere的子集group == "A"有没有一种(简单的)方法可以做到这一点,还是在这种情况下base王牌dplyr易于使用?

阿克伦

我们可以ifelse用来创建逻辑条件,并以此为基础进行算术计算或else返回原始值。

df %>%
    mutate(x = ifelse(group=="A", x*180/pi, x))

或就像@AlexIoannides提到的那样,可以使用if_elsefrom,dplyr因此type应该注意这一点。


在中data.table,这可以通过就地分配来完成,并且应该更有效率。

library(data.table)
setDT(df)[group=="A", x := x*180/pi]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

dplyr编排动词不适用于角色类,仅适用于因子

水平合并仅适用于可伸缩的某些列

使用变量在数据框中同时使用因子名称和水平顺序来更改R中的因子水平

基于仅适用于数据子集的条件使用 dplyr 过滤

修改数据框中的变量值

使用ifelse修改因子变量的水平

RateLimiter仅适用于某些方法

仅适用于某些类的接口?

仅适用于某些域的代理

SimpleMappingExceptionResolver仅适用于某些异常

dplyr :: select()具有某些可能在数据框中不存在的变量?

使用功能修改数据框中的列

使用iterrows()修改数据框中的元素

在子数据框中删除未使用的因子水平

使用dplyr过滤R中的因子水平

修改数据框中的多行

修改数据框中的值

使用数据框列更改因子水平

envsubst仅适用于部分变量

for循环不适用于python中的空数据框

Python Pandas复制和修改数据框中的某些行

Django:“在分配前已被引用”,但仅适用于某些变量

POpen适用于字符串,但不能使用变量

通过匹配给定因子水平的变量/列选择数据框中的变量/列

水平滚动仅适用于下拉按钮

修改将包装程序类添加到iframe的脚本-使其仅适用于某些域

无法获取数据,仅使用软件包yfinance按格式分组下载到熊猫数据框中,仅适用于我的子列表中的特定股票

使用循环或应用于根据条件仅覆盖数据帧中变量的某些值

在现有iOS应用程序中使用React Native仅适用于某些视图

TOP 榜单

热门标签

归档