簡體   English   中英

R:將一列中的字符串出現次數存儲在新列中

[英]R: Storing counts of occurences of strings from one column in a new column

假設我有一個數據框df ,看起來像這樣:

              timestamp           residence
2014/01/29 10:46:46 PM EST        Virginia, USA
2014/01/29 10:51:01 PM EST        Maryland, USA
2014/01/29 10:54:08 PM EST   Massachusetts, USA
2014/01/29 10:55:00 PM EST         Indiana, USA
2014/01/29 11:02:31 PM EST        Michigan, USA
2014/01/29 11:19:42 PM EST        Virginia, USA

現在,我要使用它並創建一個新的數據框df.count ,其中包含一列,該列唯一地(一次)列出了在df $ residence下找到的每個字符串,第二列列出了df $中每個字符串的出現次數住宅。 這類似於

table(df$residence)

但輸出格式將改為:

         residence     count
     Virginia, USA     2
     Maryland, USA     1
Massachusetts, USA     1
      Indiana, USA     1
     Michigan, USA     1

我想您可以使用table來構建此新數據框:

tab <- table(df$residence)
data.frame(residence=names(tab), count=as.vector(tab))
#            residence count
# 1       Indiana, USA     1
# 2      Maryland, USA     1
# 3 Massachusetts, USA     1
# 4      Michigan, USA     1
# 5      Virginia, USA     2

如果您可以僅以residence為名:

with(df, data.frame(count=tapply(residence, residence, length)))

如果您想使用residence的實際列:

with(df, {
  summ <-tapply(residence, residence, length)
  data.frame(residence=names(summ), count=summ)
} )

aggregate另一種解決方案:

setNames(aggregate(seq(nrow(df)) ~ residence,df, length), c("residence","count"))

           residence count
1       Indiana, USA     1
2      Maryland, USA     1
3 Massachusetts, USA     1
4      Michigan, USA     1
5      Virginia, USA     2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM