【问题标题】:Constructing histogram from 2 variables in 1 column in R从R中1列中的2个变量构造直方图
【发布时间】:2017-10-21 05:49:50
【问题描述】:

我有一个 csv,它仅使用 1 列,数据由空格分隔。称为 Uniq.csv

数字代表这个人发了多少条推文,名字就是那个人的推特名字。

2 Bobby
1 Derek
1 John

我正在尝试根据这些数据创建直方图。理想情况下,x 轴上的每个帐户名称和 y 轴上的推文频率。

这是我尝试这样做的代码:

setwd(setwd("~/Documents")
UniqFreq <- read.csv("Uniq.csv",header = FALSE)
hist(UniqFreq)

这当然行不通。任何帮助或帮助都会继续进行!

【问题讨论】:

  • 条形图很适合这类问题

标签: r


【解决方案1】:

这应该让你开始:

barplot(  x$V1, names.arg = x$V2 )

产量

第一个参数是带有要绘制的值的向量,第二个参数提供 x 个标签。还有更多用于微调的螺丝(标题、轴标签、颜色......),但我认为这超出了这里的范围。

【讨论】:

  • 你能解释一下每个部分的含义吗?所以我知道要为我的特定设置替换和更改什么
  • 已编辑,但更好的方法可能是查找?barplot
【解决方案2】:

1.) CSV 代表逗号分隔值。您的值显然不是逗号分隔的。因此,您应该使用read.table 并将sep 参数设置为正确的值。

2.) 直方图不适用于绘制分类数据(即,直方图在 X 轴上没有分类变量,正如您在此处指定的那样)。您正在寻找条形图。

所以你可以这样做:

txt <- (
'2 Bobby
1 Derek
1 John'
)

dat <- read.table(text = txt, header = F, sep = " ", col.names = c("Count", "Name"))

barplot(height = dat$Count, names.arg = dat$Name)

【讨论】:

  • 感谢您的洞察力。给出的问题是直方图,但我也很困惑,因为我认为条形图更合适。我现在唯一遇到的问题是计数和名称在同一列中。
  • 我也解决了这个问题。使用read.table,与sep = " ",而不是read.csv
  • 因为您的文本文件称为 txt。我已经用 Uniq.txt 替换了代码,但我得到一个错误,说它没有找到......
  • 我只是以txt变量为例。您可以将代码保留为“Uniq.csv”。所以,dat &lt;- read.table(file = "Uniq.csv", header = F, sep = " ")
  • 如果我尝试使用 col.names 部分的代码,我会收到一条错误消息,指出列数比名称多。这不是真的。如果我删除该部分,它会说第 247 行没有 5 个元素,这意味着什么......
猜你喜欢
  • 1970-01-01
  • 2013-10-16
  • 2013-01-16
  • 2020-06-02
  • 1970-01-01
  • 1970-01-01
  • 2020-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多