2017-10-06 21 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是你的數據框的名稱。