Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在r中获取表中特定元素的坐标_R_List_Crosstab - Fatal编程技术网

如何在r中获取表中特定元素的坐标

如何在r中获取表中特定元素的坐标,r,list,crosstab,R,List,Crosstab,嘿,伙计们,你们知道我如何列出组合最频繁的元素对吗? 假设我有两个向量,我执行交叉制表,我想找到这两个向量中最频繁的一对。把它作为一个列表,例如(2,3),这意味着第一个向量的元素2和第二个向量的元素3的组合是最频繁的。 例如: mp<- c(1,1,1,1,2,2,3,4) mp1<- c("red", "red", "red", "red", "blue", "blue", "green", "pink") table(mp,mp1) mp1 mp blue green

嘿,伙计们,你们知道我如何列出组合最频繁的元素对吗? 假设我有两个向量,我执行交叉制表,我想找到这两个向量中最频繁的一对。把它作为一个列表,例如(2,3),这意味着第一个向量的元素2和第二个向量的元素3的组合是最频繁的。 例如:

mp<- c(1,1,1,1,2,2,3,4)
mp1<- c("red", "red", "red", "red", "blue", "blue", "green", "pink")

table(mp,mp1)
   mp1
mp  blue green pink red
  1    0     0    0   4
  2    2     0    0   0
  3    0     1    0   0
  4    0     0    1   0

mp您可以用这种方式设计函数

v1 <- c(2,3,2,3)
v2 <- c("blue", "red", "blue", "green") 
tbl <- table(v1, v2)
tbl # most frequent combination: 2 & blue
max(tbl) # most frequent combination = 2
indices = which(tbl == max(tbl), arr.ind = TRUE) # indices for row and column of
indices                                          # the max value
v1.val = rownames(tbl)[indices[, 1]]
v2.val = colnames(tbl)[indices[, 2]]
res = c(v1.val, v2.val)
res # result

v1首先,从向量生成一个数据帧:

mp<- c(1,1,1,1,2,2,3,4)
mp1<- c("red", "red", "red", "red", "blue", "blue", "green", "pink")
df <- data.frame(mp, mp1)
只能输出第一行:

count_table[1,]
# A tibble: 1 x 3
     mp    mp1     n
  <dbl> <fctr> <int>
1     1    red     4
count_表[1,]
#一个tibble:1 x 3
mp mp1 n
1红色4

大家好,欢迎来到StackOverflow。你能提供一个可复制的例子吗?至少有一个向量示例。向量中有一些重复的值?谢谢。我想把它放在一个函数上。我将提供两个等长向量的函数,它将计算交叉列表,我希望返回两个元素,它们的组合是最频繁的。Egv1但它们不是唯一的数字,可以是,例如v2Ok,我说对了,但是你想要向量中的位置,所以你想如何处理“蓝色”例如,哪一个是v2的第一个和第二个元素?我不能通过添加typeof来保持每个元素的原始形式吗?如果向量的类型不同,这将是不可能的。试试这个
a
count_table <- dplyr::count_(df, vars = c('mp','mp1'))
count_table
# A tibble: 4 x 3
     mp    mp1     n
  <dbl> <fctr> <int>
1     1    red     4
2     2   blue     2
3     3  green     1
4     4   pink     1
count_table[1,]
# A tibble: 1 x 3
     mp    mp1     n
  <dbl> <fctr> <int>
1     1    red     4