你可以使用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