首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将列分成两组。一个有小数,一个只有绝对数。

将列分成两组。一个有小数,一个只有绝对数。
EN

Stack Overflow用户
提问于 2021-03-19 10:29:53
回答 1查看 33关注 0票数 0

我有以下数据:

我想把这些数据加起来(例如,字母A)。对于绝对值来说,这很容易。然而,就百分比而言,我需要考虑权重。因此,我希望将具有小数位(百分比)的列与不具有小数位(百分比)的列分开。

应允许百分比列同时具有绝对数和小数。但是绝对列不允许小数位。

我该怎么做?

代码语言:javascript
复制
DT <- structure(list(Letters = c("A", "B", "C", "D", "E"), Percentage = c(0.67, 
0.2, 0.4, 0.2, 0), Absolute_number = c(1000, 200, 0, -199, 1), 
    PercentageII = c(65.2, 1.2, 22.8, 4, 0), weights = c(2, 3, 
    3, 1, 8)), row.names = c(NA, -5L), class = c("tbl_df", "tbl", 
"data.frame"))

  Letters Percentage Absolute_number PercentageII weights
  <chr>        <dbl>           <dbl>        <dbl>   <dbl>
1 A             0.67            1000         65.2       2
2 B             0.2              200          1.2       3
3 C             0.4                0         22.8       3
4 D             0.2             -199          4         1
5 E             0                  1          0         8

预期产出:

代码语言:javascript
复制
DT1 <- DT[, c("Letters","Absolute_number", "weights")]
DT2 <- DT[, c("Letters","Percentage", "PercentageII)]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-19 10:47:24

使用Filter

代码语言:javascript
复制
DT1 <- Filter(function(x) is.character(x) || all(x %% 1 == 0), DT)
DT2 <- Filter(function(x) is.character(x) || any(x %% 1 != 0), DT)

DT1

# A tibble: 5 x 3
#  Letters Absolute_number weights
#  <chr>             <dbl>   <dbl>
#1 A                  1000       2
#2 B                   200       3
#3 C                     0       3
#4 D                  -199       1
#5 E                     1       8

DT2
# A tibble: 5 x 3
#  Letters Percentage PercentageII
#  <chr>        <dbl>        <dbl>
#1 A             0.67         65.2
#2 B             0.2           1.2
#3 C             0.4          22.8
#4 D             0.2           4  
#5 E             0             0  

如果值是整数(没有小数位),x %% 1 == 0将返回TRUE

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66706457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档