Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
164 views
in Technique[技术] by (71.8m points)

function - Scala: Getting the percentage of the number of objets in a list

Considering the following dataset called "df":

Name | Sex
John | man
Peter| man
Henry| man
Mary | woman

I would like to define a function that returns me this:

Percentage of men: 75%
Percentage of women: 25%

I'm having trouble because "men" and "women" are string type and to add the percentage symbol (%). Also I would like to clarify that I'm using IntelliJ to code in Scala.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

As suggested by jwvh, you can do something like this:

case class Person(name: String, sex: String)

val df: Seq[Person] = ???

df
  .groupBy(_.sex)
  .map { case (sex, persons) =>
    val percentage = persons.length * 100 / df.length
    s"Percentage of $sex: $percentage%"
  }

This will give you a Seq[String] which you can use how you'd like.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...