正如您在圖像上看到的那樣。 表顯示教育(因素)和education_num(int)之間的關係。 簡單地說,幼兒園是1作爲education_num 1至4是2作爲education_num 等等 博士是16作爲education_num。 問題是我想製作一張映射教育和education_num的新表格。 即, 它看起來像
學齡前1
1s4-第四2
等
博士16
我想我需要使用切()或添加選項在表中(),但我不知道如何做到這一點。
感謝
正如您在圖像上看到的那樣。 表顯示教育(因素)和education_num(int)之間的關係。 簡單地說,幼兒園是1作爲education_num 1至4是2作爲education_num 等等 博士是16作爲education_num。 問題是我想製作一張映射教育和education_num的新表格。 即, 它看起來像
學齡前1
1s4-第四2
等
博士16
我想我需要使用切()或添加選項在表中(),但我不知道如何做到這一點。
感謝
我假設你有原始數據幀的人口普查,在那樣的形式:
> df <- data.frame(education=c("pre","pre","1st-4th","5th-6th","1st-4th"),education_num=c(1,1,2,3,2))
> df
education education_num
1 pre 1
2 pre 1
3 1st-4th 2
4 5th-6th 3
5 1st-4th 2
所以,你可以得到獨特的價值觀:
> unique(df)
education education_num
1 pre 1
3 1st-4th 2
4 5th-6th 3
,或者如果你有其他數據幀中的列,您可以使用:
library(dplyr)
df %>%
group_by(education) %>%
summarise(education_num=unique(education_num)) %>%
arrange(education_num)
# A tibble: 3 x 2
education education_num
<fctr> <dbl>
1 pre 1
2 1st-4th 2
3 5th-6th 3
編輯
如果你想從該表進行改造,就可以使用以下命令:
df <- data.frame(education=c("pre","pre","1st-4th","5th-6th","1st-4th"),education_num=c(1,1,2,3,2))
kk <- table(df$education,df$education_num)
> kk
1 2 3
1st-4th 0 2 0
5th-6th 0 0 1
pre 2 0 0
dfx <- data.frame(edu=row.names(kk)) %>%
mutate(edu_num=sapply(edu, function(x) which(kk[x,]>0)))
> dfx
edu edu_num
1 1st-4th 2
2 5th-6th 3
3 pre 1
首先,謝謝你的回答。 那麼,我問的不是如何獲得每個值,但 如何從上表轉換爲您在答案上作出的表 –
我編輯我的答案,檢查出來。 – OmaymaS
這可以幫助我很多。自從我知道如何實施其他方式以來 但我只想知道這項工作是否有捷徑。 非常感謝 –
使用'dput請提供可重複的例子()'。將指針懸停在「r」標籤上以獲取更多信息。 –
1)可重複的例子(2)研究努力 – vagabond