【问题标题】:R- Count of Specific values and Print in RR-特定值的计数并在R中打印
【发布时间】:2015-04-28 01:33:41
【问题描述】:

我已经创建了数据框“df”

Age Sex Income
45  Female  3000
25  Female  5000
34  Male    4500

现在我想计算性别列中的女性数量,并将其打印为“女性数量 = 2”,而不使用任何特殊包

我可以在输入代码时看到男性和女性的数量:summary(df$Sex)table(df$sex)

尝试做Femdata=df[which(df$Sex =='Female'),] 不工作 sum(df$sex=="Female", na.rm=TRUE) 不工作 df$sex[df$sex=="Female"] 不工作 length(df[df$sex=="Female"]) 不工作 请让我知道解决方案并请帮助我打印一些声明然后回答

【问题讨论】:

  • 数据框是表格形式,但问题显示为一行
  • 为什么sum(df$sex=="Female", na.rm=TRUE) 不起作用?你得到了什么输出?

标签: r frequency-analysis


【解决方案1】:

一般情况下,您可以使用cat 打印带有答案的额外信息:

> cat("No of Females = ", nrow(mydf[mydf$Sex == "Female", ]))
No of Females =  2

如果您希望将结果作为字符串在其他地方使用,使用sprintfpaste 可能更容易:

> sprintf("No of Females = %s", nrow(mydf[mydf$Sex == "Female", ]))
[1] "No of Females = 2"

【讨论】:

  • 感谢您的 Print 语句运行良好,但我得到的结果是“No of females = 0”。不知道为什么这么给我下面的代码。所以它是一个名为 censusSummary 的函数,其中路径由 dataFile 给出。这个 census-income.data 没有列名,所以扫描其他 census-income.features.txt 数据读取名称并指定为 census-income.data 文件的列名
  • censusSummary
  • df 名称(df) [1] “V1” “V2” “V3” “V4” “V5” “V6” “V7” “V8” “V9” “V10” “V11” “V12” “V13” “V14” “V15” ""V16""V17""V18""V19"[20]"V20""V21""V22""V23""V24""V25""V26""V27""V28""V29""V30"" V31”“V32”“V33”“V34”“V35”“V36”“V37”“V38”[39]“V39”“V40”“V41”“V42”>猫(“女性人数=”,nrow( df[df$V13 == "女性", ])) 女性人数 = 0
  • > table(df$V13) 女 男 103984 95539
【解决方案2】:

更简单的是,得到计数:

sum(df$Sex == 'Female')

要打印它,您的选择就像 Ananda Mahto 所说的那样。

【讨论】:

  • 我投了反对票,因为这个问题专门针对印刷。这个选项已经在他们的问题中了。
  • 取消了我的反对票。看到您的评论,但仍然觉得这不能回答问题。
  • @AnandaMahto:不,它是关于计数和打印的——而 OP 声称这对计数不起作用几乎肯定是不正确的,所以我们需要找出的是:为什么?
【解决方案3】:

试试

nrow(df[df[,2]=="Female",])

这里的问题是您在矩阵数据帧中错过了逗号 (,),因此它返回错误。 列名也区分大小写,必须完全匹配!

【讨论】:

    猜你喜欢
    • 2022-11-23
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    • 2016-02-26
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    相关资源
    最近更新 更多