【问题标题】:Create a histogram of specific columns and rows from a `data.frame` in R从 R 中的“data.frame”创建特定列和行的直方图
【发布时间】:2021-09-02 19:50:04
【问题描述】:
## my data frame 
crime = read.csv("url")

## specific columns that need to be represented
property_crime = crime$Burglary + crime$Theft + crime$`Motor Vehical Theft`

## the rows that I am looking for have the name "harris" within the column named "county_name"

## my attempt
with(crime, hist(harris))


## Error in hist(harris) : object 'harris' not found 

不知道为什么我得到object 'harris' not found,因为这是county_name 列下的名称。我是R 的新手,有人可以指导我完成显示仅包含特定列和特定行值的直方图的过程吗?

【问题讨论】:

  • 请与dput()分享您的数据
  • 是否要使用dput()后粘贴到控制台的无组织输出?
  • @LoganWhitehair 是的,请粘贴dput(crime)的结果
  • 我无法使用 dput(crime) 的内容编辑我的问题,因为它超过了 30000 个字符的限制
  • @LoganWhitehair dput(crime[1:50, ]) 怎么样?在前 50 行中有 county_name == "harris" 的实例吗?另外,我的回答是否让您更接近您的需求?

标签: r data-science


【解决方案1】:

我要查找的行在名为“county_name”的列中具有名称“harris”

你必须告诉R你告诉我们的同样的逻辑。

R 中有几种方法可以做到这一点,但我将把base R 的方式放在这里。

我们可以通过像data.frame[rows, columns] 这样的索引来访问对象crimecounty_name 的所需行。因此,在您的情况下,crime[harris_rows, "county_name"] 应该可以工作。要获得harris_rows,我们可以创建一个boolean 索引,如crime$county_name == harris。如果我们将所有这些放在一起并致电hist()

hist(crime[crime$county_name == "harris", "county_name"])

您没有提供可重现的示例,但您可以使用mtcars 数据集检查类似的逻辑。在这里,我正在使用mpg > 15 制作汽车的直方图

hist(mtcars[mtcars$mpg >15, "mpg"])
# this is another option that produces the same result
# hist(mtcars$mpg[mtcars$mpg >15])

【讨论】:

  • 将 - crime[harris_rows, "county_name"] 添加到变量并将我想要包含的列添加到另一个变量中是否是最佳做法。然后用前面定义的变量作为参数调用 hist()?
  • 我不会太担心你的 R 旅程这个级别的最佳实践,但你当然可以创建一个变量,然后将其作为索引传递。
  • 感谢您的帮助,您帮助我提高了对问题的逻辑理解,但是,我认为我对 R 语法的理解不足以提出更多好的问题来得出答案。如果我找到解决方案或能想到更好的问题,我会更新。
猜你喜欢
  • 2016-08-26
  • 1970-01-01
  • 2016-07-08
  • 1970-01-01
  • 2017-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-13
相关资源
最近更新 更多