小编Str*_* on的帖子

在 R 中循环变量和数据帧

我有一个数据争论问题,我真的无法理解。我曾遇到过将数据粘在一长串中的情况,其中包括几个人的姓名和性别。我想从这些字符串中挑选出特定的信息并将它们放在一个数据框中。我已经设法做到了这一点,但我的解决方案远非优雅,如果可以循环遍历变量和数据框而不是使用我庞大的解决方案,那就太好了。我无法共享原始数据,但我创建了一个示例数据。数据遵循以下结构:

\n
df <- data.frame(Movie=c("Matrix", "Black Widow"), \n                 People=c("\xc2\xa4\xc2\xa4\xc2\xa434543\xc2\xa4Keanu Reeves\xc2\xa4932 9273\xc2\xa4Male\xc2\xa4\xc2\xa4\xc2\xa402734\xc2\xa4Laurence Fishburne\xc2\xa4936 2740\xc2\xa4Male\xc2\xa4\xc2\xa4\xc2\xa447622\xc2\xa4Carrie-Anne Moss\xc2\xa4938 0722\xc2\xa4Female\xc2\xa4\xc2\xa4\xc2\xa421539\xc2\xa4Hugo Weaving\xc2\xa4953 6124\xc2\xa4Male",\n                 "\xc2\xa4\xc2\xa4\xc2\xa498237\xc2\xa4Scarlett Johansson\xc2\xa4923 8734\xc2\xa4Female\xc2\xa4\xc2\xa4\xc2\xa472367\xc2\xa4Florence Pugh\xc2\xa4732 4284\xc2\xa4Female\xc2\xa4\xc2\xa4\xc2\xa455661\xc2\xa4David Harbour\xc2\xa4981 2469\xc2\xa4Male"))\n
Run Code Online (Sandbox Code Playgroud)\n

最后,我想得到以下数据框:

\n
#        Movie               Name    Sex\n#1      Matrix       Keanu Reeves   Male\n#2 Black Widow Scarlett Johansson Female\n#3      Matrix Laurence Fishburne   Male\n#4 Black Widow      Florence Pugh Female\n#5      Matrix   Carrie-Anne Moss Female\n#6 Black Widow      David Harbour   Male\n#7      Matrix       Hugo Weaving   Male\n
Run Code Online (Sandbox Code Playgroud)\n

好的,这是我的解决方案:

\n

我首先计算分隔字符的出现次数,然后将数据分成几部分:''

\n
library(stringr)\ndf$people_count <- str_count(df$People, "\xc2\xa4")\n\nmax_people_count <- max(df$people_count)\n\nnew_varnames <- paste0("Name", 0:max_people_count)\ndf[c(new_varnames)] <- str_split_fixed(df$People, "\xc2\xa4", max_people_count+1)\n …
Run Code Online (Sandbox Code Playgroud)

for-loop r dataframe

2
推荐指数
1
解决办法
72
查看次数

标签 统计

dataframe ×1

for-loop ×1

r ×1