我有一个数据争论问题,我真的无法理解。我曾遇到过将数据粘在一长串中的情况,其中包括几个人的姓名和性别。我想从这些字符串中挑选出特定的信息并将它们放在一个数据框中。我已经设法做到了这一点,但我的解决方案远非优雅,如果可以循环遍历变量和数据框而不是使用我庞大的解决方案,那就太好了。我无法共享原始数据,但我创建了一个示例数据。数据遵循以下结构:
\ndf <- 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"))\nRun 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\nRun Code Online (Sandbox Code Playgroud)\n好的,这是我的解决方案:
\n我首先计算分隔字符的出现次数,然后将数据分成几部分:''
\nlibrary(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)