通过匹配其他列来查找一列的唯一长度

时间:2015-06-30 21:21:46

标签: r rstudio

所以我有CSV格式的数据框:example

我想知道如何查找与unique lengthlecturer.id

匹配的program.id program.id.ime.length(unique(subset(df, lecturer.id==program.id)))

所以我的结果应该是可变的,这会给我独立 讲授。 讲授。谁在教英语(在我的情况下,我可以从数据或图片看这是10位讲师),以及教授历史的独特讲师的长度等等。所以我想生成以下代码:

如果这个讲座.id匹配这个program.id而不是这个program.id.ime的粘贴长度,这是= 10 othervise粘贴不同长度

我正朝这个方向思考(但这不是我想要的)

aggregate

我在考虑使用program.id,但我需要根据program.id.imelecturer.id<- c(111, 111,112,126,127,132,139,143,155) program.id<- c(35,35,35,35,44,44,44,42,42) program.id.ime<- c('English', 'English', 'English', 'English', 'History', 'History', 'History', 'Sociology', 'Sociology') df <- data.frame(lecturer.id, program.id, program.id.ime) 生成不同长度的变量。

我数据框的一小部分看起来像这样

foor-loop

所以我知道id 111的讲师正在教授id为35的课程,这个课程名称是英语。我的结果应该是所有讲英语的讲师的长度或数字,以及所有教授历史的讲师的长度等。

因此,当我将R代码与latex(hmisc)组合时,我的输出是一个表(因为数据机密性我删除了一些变量: enter image description here

我想在括号中生成数字,这是我想要的OUTPUT的例子。通过匹配列自动生成它非常重要。

重点是我正在为单独的讲师做PDF报告,我正在根据他的讲座与讲师进行匹配。 React.render(<Reviews url='stars.json' />, document.getElementById('container')); 。所以输出是一位讲师的PDF报告,第二张图中的表格我需要特定课程的所有讲师的数量。

1 个答案:

答案 0 :(得分:3)

使用链接中的数据(将文件名更改为&#39; Miha.csv&#39;)

df1 <- fread('Miha.csv') #in this case, the object will be `data.table`
setDT(df1)[, list(n= uniqueN(lecturer.id)), .(program.id, program.id.ime)
   ][, program.id.ime:=sprintf('%s (%d)', program.id.ime, n)][, n:=NULL]
#   program.id   program.id.ime
#1:         35      English (9)
#2:         44      History (4)
#3:         43    Sociology (8)
#4:         34  Politology (21)
#5:         40 Antropology (62)
#6:         41       Music (65)
#7:        116    Music II (10)

或者

setDT(df1)[, list(program.id.ime=sprintf('%s (%d)',
      program.id.ime[1L], uniqueN(lecturer.id))) , .(program.id)]
#    program.id   program.id.ime
# 1:         35      English (9)
# 2:         44      History (4)
# 3:         43    Sociology (8)
# 4:         34  Politology (21)
# 5:         40 Antropology (62)
# 6:         41       Music (65)
# 7:        116    Music II (10)

在数据集中,每个&#39; program.id.ime&#39;有一个&#39; program.id&#39;,所以

{{1}}