2017-10-06 127 views
0

我有一个男子100米短跑世界纪录持有人的姓名,他们的记录,他们的国籍和他们运行日期的数据集。这是该数据的图像:短跑运动员的姓名和国籍表

sample data

我读入R,并想创建是这样一个表:

Usain Bolt  Jamaica 
Asafa Powell Jamaica 
Carl Lewis  USA 
.... 

代码

table(100men$name,100men$nationality) 

没有得到我想要的东西(它使这张表:table formed by the code above)。你如何使用代码获得它?

回答

1

除非我误解你的问题,这听起来像你的原始表包含所有你需要的信息。所以,只需删除不必要的列。例如:

# Make example dataset. 
X = data.frame("name" = c("Usain Bolt", "Asafa Powell", "Carl Lewis"), 
       "nationality" = c("Jamaica", "Jamaica", "USA"), 
       "time" = c(9.59, 10.2, 9.3)) 

# Subset data to just include name and nationality 
X2 = X[, which(colnames(X) %in% c("name", "nationality"))] 
X2 #showing output 

如果你担心重复(例如,也许博尔特在原始数据的两行),可以使用X2 = X2[!duplicated(X2), ]保留的唯一记录。

2

假设您的数据具有数据映像中指定的列名称,您可以使用dplyr来随意操作它。例如,如果你想看到运动员和民族,

library("dplyr") 
data %>% 
    group_by(Athlete, Nation) %>% 
    distinct() 
1

因为你的数据在1和2列,你可以去

unique(data[,1:2]) 

其中data是你的数据框的名称。