2017-06-22 60 views
0

我想從現有的表中創建一個新的R表。 爲了說明,請參閱下表:創建一個帶有指定列中的內容的R的CSV文件

enter image description here

查詢着眼於第2和第3列和地圖實例發生結合,產生一個新表。

正如你所看到的,沒有重複的例子,這是至關重要的。 我嘗試過使用Unique函數來做這件事,但我還沒有能夠很好地計算出來,以便生成CSV輸出就像這樣。

回答

0

如果您對R很新,則可以使用sqldf軟件包來幫助您。有了這個可以在R中編寫sql查詢。如果你使用表格,這可以提供幫助。

你的代碼,你想要做的,然後是這樣的:

install.packages("sqldf") 
library(sqldf) 
new_table<-sqldf("SELECT Column2, Column3, COUNT(*) as Frequency from old_table group by CONCAT(Column2,Column3)") 
write.csv(new_table, "new_table.csv") 
0

操縱數據,你可以把它放在一個tibble事後使用dplyr語法。

library(dplyr) 

tibble(col_1=c(14, 5, 7, 688, 56, 565, 674), 
     col_2=c("A", "A", "B", "B", "B", "A", "C"), 
     col_3=c("C", "C", "D", "D", "D", "A", "D"), 
     col_4=c("67rhr", "4gg2", "344g5", "4yy4", "6hthht7", "7ttjty7", "yyuuy")) %>% 
    count(col_2, col_3) %>% 
    rename("frequency"=n) 

# col_2 col_3 frequency 
# <chr> <chr>  <int> 
# 1  A  A   1 
# 2  A  C   2 
# 3  B  D   3 
# 4  C  D   1 
0
Col1 <- c(12,5,7,688,56,565,674) 
ColA <- c("A","A","B","B","B","A","C") 
ColB <- c("C", "C","D", "D", "D", "A", "C") 
df = data.frame(Col1, ColA, ColB) 
library(dplyr) 
result <- select(df, ColA, ColB) %>% 
    group_by(ColA, ColB) %>% 
    summarise(Frequency=n()) 

write.csv(result, file="somename.csv") 
相關問題