我被要求使用从网站复制的信息在R中创建一个数据框;数据不包含在文件中。完整的数据列表位于:
https://www.npr.org/2012/12/07/166400760/hollywood-heights-the-ups-downs-and-in-betweens
以下是数据的一部分:
Leading Men (Average American male: 5 feet 9.5 inches)
Dolph Lundgren — 6 feet 5 inches
John Cleese — 6 feet 5 inches
Michael Clarke Duncan — 6 feet 5 inches
Vince Vaughn — 6 feet 5 inches
Clint Eastwood — 6 feet 4 inches
Jimmy Stewart — 6 feet 3 inches
Bill Murray — 6 feet 1.5 inches
Leading Ladies (Average American female: 5 feet 4 inches)
Uma Thurman — 6 feet 0 inches
Brooke Shields — 6 feet 0 inches
Jane Lynch — 6 feet 0 inches我应该使用R来创建数据框,其中一列是Name,第二列是Height (以cm为单位),第三列是Gender。
我已经将所有数据复制并粘贴到记事本中,手动制作了三个不同的列,并手动将高度转换为厘米。但这是手动创建数据框。
有没有一种方法可以使用给定的数据在R中制作数据帧?
发布于 2020-10-16 01:51:16
您可以复制整个列表,然后使用read.line将剪贴板上的文本带到R中。然后使用regex可以从每个部分的标题中提取性别,将其展开到下面的行,然后将第一列的名称和高度separate。见下文;
web.lines <- read.delim("clipboard", header = F) # reading data from clipboard
library(tidyverse)
web.lines %>% 
  mutate(gender = str_extract(V1, "Leading\\s+\\b(\\w+)\\b")) %>% # extracting gender from headers
  fill(gender , .direction = "down") %>% # filling the gender for all rows
  group_by(gender) %>% 
  slice(-1) %>% # removing the headers
  separate(V1, into = c("Name", "Height"), sep = " — ") # separating name and height
#> # A tibble: 59 x 3
#> # Groups:   gender [2]
#>    Name                  Height             gender        
#>    <chr>                 <chr>              <chr>         
#> 1  Uma Thurman           6 feet 0 inches    Leading Ladies
#> 2  Brooke Shields        6 feet 0 inches    Leading Ladies
#> 3  Jane Lynch            6 feet 0 inches    Leading Ladies
#> 4  Nicole Kidman         5 feet 11 inches   Leading Ladies
#> 5  Tilda Swinton         5 feet 10.5 inches Leading Ladies
#> ...
#> 28 Dolph Lundgren        6 feet 5 inches    Leading Men   
#> 29 John Cleese           6 feet 5 inches    Leading Men   
#> 30 Michael Clarke Duncan 6 feet 5 inches    Leading Men   
#> 31 Vince Vaughn          6 feet 5 inches    Leading Men   
#> 32 Clint Eastwood        6 feet 4 inches    Leading Men  
#> ...https://stackoverflow.com/questions/64376566
复制相似问题