你可以使用dplyr:
library(dplyr)
df%>%group_by(Breed)%>%summarize(Frequency=n())%>%mutate(TrueFalse=ifelse(Frequency<66,"F",as.character(Breed)))
導致:
Source: local data frame [14 x 3]
Breed Frequency TrueFalse
<fctr> <int> <chr>
1 American Pit Bull Terrier Mix 4 F
2 Angora Mix 2 F
3 Cairn Terrier 4 F
4 Cairn Terrier/Chihuahua Shorthair 4 F
5 Domestic Shorthair Mix 519 Domestic Shorthair Mix
6 Flat Coat Retriever Mix 2 F
7 Great Pyrenees Mix 4 F
8 Lhasa Apso/Miniature Poodle 4 F
9 Miniature Schnauzer Mix 4 F
10 Pit Bull Mix 10 F
11 Plott Hound/Boxer 73 Plott Hound/Boxer
12 Queensland Heeler Mix 2 F
13 Yorkshire Terrier Mix 4 F
14 Shetland Sheepdog Mix 75 Shetland Sheepdog Mix
其中df是:
df<-structure(list(Breed = structure(c(14L, 5L, 10L, 5L, 8L, 4L,
5L, 5L, 1L, 3L, 5L, 9L, 10L, 13L, 7L, 5L, 5L, 10L, 2L, 6L, 12L,
5L, 11L, 14L, 5L, 10L, 5L, 8L, 4L, 5L, 5L, 1L, 3L, 5L, 9L, 10L,
13L, 7L, 5L, 5L, 10L, 2L, 6L, 12L, 5L, 11L, 14L, 5L, 10L, 5L,
8L, 4L, 5L, 5L, 1L, 3L, 5L, 9L, 10L, 13L, 7L, 14L, 5L, 10L, 5L,
8L, 4L, 5L, 5L, 1L, 3L, 5L, 9L, 10L, 13L, 7L, 5L, 11L, 14L, 5L,
5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L,
14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L,
5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L,
14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L,
5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L,
14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L,
5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L,
14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L,
5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L,
14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L,
5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L,
14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L,
5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L,
14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L,
5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L,
14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L,
5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L,
14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L,
5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L,
14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L, 5L, 11L, 14L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L), .Label = c(" American Pit Bull Terrier Mix",
" Angora Mix", " Cairn Terrier", " Cairn Terrier/Chihuahua Shorthair",
" Domestic Shorthair Mix", " Flat Coat Retriever Mix", " Great Pyrenees Mix",
" Lhasa Apso/Miniature Poodle", " Miniature Schnauzer Mix", " Pit Bull Mix",
" Plott Hound/Boxer", " Queensland Heeler Mix", " Yorkshire Terrier Mix",
"Shetland Sheepdog Mix"), class = "factor")), .Names = "Breed", class = "data.frame", row.names = c(NA,
-711L))
你嘗試'DT1 [C( 「頻率」, 「TrueFalse」):=。(.N,ifelse(.N <66,FALSE,Breed)),by = Breed]'(省略'FALSE'附近的引號)? – Jaap
是的,當它被測試,給出相同的錯誤, 錯誤在'[.data.table'(dt1,,':='(c(「Frequency」,「TrueFalse」),。(。N,: Type RHS('邏輯')必須與LHS('字符')匹配。檢查和脅迫會對最快情況的性能影響太大。要麼改變目標列的類型,要麼強制:=你自己的RHS使用1L而不是1) – user3789200
對示例數據進行了測試,帶**引號的代碼**適用於我的PC。 – Jaap