首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R:如何从tibble列中获取级别

R:如何从tibble列中获取级别
EN

Stack Overflow用户
提问于 2018-07-20 20:41:19
回答 1查看 1.5K关注 0票数 0

的总体目标:

我有一个带有国家名称列的Ti球,一个包含“军事”或“经济”字符的列,以及一个数字列(作为字符导入)。我需要把每个国家的军事开支和每个国家的经济开支合计起来。

My策略:

我将数据导入到

代码语言:javascript
复制
data <- read_excel("/path/name.xlsx")

这使得data成为一个tibble,但是所有的值都是自动字符。为了使数字列可加和,我编写

代码语言:javascript
复制
data[,8] <- sapply(data[,8], as.numeric)

似乎很有效,不确定这是否是实现目标的最佳选择。不管怎么说,现在我想得到国家栏的因素,这样我就可以循环每一个国家的名称,然后循环每一行的tibble,汇总军事开支,等等。

问题:

然而,

代码语言:javascript
复制
levels(data[,3])

返回一个错误。那么,是否有一种方法可以获得水平,而不对行进行循环,将其收集到向量中,然后再返回试图收集军费金额的行?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-20 21:00:47

read_excel将字符串读入字符串,而不转换为一个因子。

阅读数据:

代码语言:javascript
复制
data <- read_excel("/path/name.xlsx",
                       col_types = c("guess", "guess", "guess", "numeric", "guess", "guess", "guess", "text"))
    # I dont know your other column types

备选案文一,转换为一个因素:

代码语言:javascript
复制
data$country <- as.factor(data$country)
levels(data$country)

选项二,使用unique,它可能给您相同的东西,这取决于您正在做什么。

代码语言:javascript
复制
unique(data$country)

然而,从你的总体目标来看,你想得到每个国家的总金额。使用dplyr

代码语言:javascript
复制
# read fake data
mydata <- read.table(text = "
country spending_type spending
uk military 100
uk military 800
uk military 300
uk military 700
uk economic 500
uk economic 100
uk economic 80
uk economic 200
usa military 3100
usa military 2800
usa military 4300
usa military 3700
usa economic 2500
usa economic 1100
usa economic 280
usa economic 3200", header = TRUE, stringsAsFactors = FALSE)

R的魔力,不需要循环:

代码语言:javascript
复制
library(dplyr)

mydata %>% 
  group_by(country, spending_type) %>% 
  summarise(total_spending = sum(spending))

输出:

代码语言:javascript
复制
  country spending_type total_spending
  <chr>   <chr>                  <int>
1 uk      economic                 880
2 uk      military                1900
3 usa     economic                7080
4 usa     military               13900
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51450078

复制
相关文章

相似问题

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