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
97 views
in Technique[技术] by (71.8m points)

r - Inverting columns and rows in a dataframe

R-newbie here! So I have data that looks like this:

rater1 1

rater1 2

rater1 3

rater2 2

rater2 3

rater2 1

I want the output to look something like this:

|rater 1 |1| 2| 3|

|rater 2 |2| 3| 1|

I had tried using the groupby() function. But it doesn't seem to work.

Does anybody have any ideas?

question from:https://stackoverflow.com/questions/65936210/inverting-columns-and-rows-in-a-dataframe

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

1 Reply

0 votes
by (71.8m points)

A dplyrsolution:

df %>%
  group_by(rater) %>%
  summarise(ratings = paste0(ratings, collapse = ","))
# A tibble: 2 x 2
  rater  ratings
* <chr>  <chr>  
1 rater1 1,2,3  
2 rater2 1,2,3 

If you prefer not to have a , between the ratings, just replace "," by " " in the collapse argument to paste0.

Data:

df <- data.frame(
  rater = c(rep("rater1",3), rep("rater2",3)),
  ratings = c(rep(c(1,2,3), 2))
)

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

...