我正在尝试完成此代码,但是当我在函数中编写它时出现错误

时间:2019-07-17 20:13:17

标签: r

我正在尝试编写一个函数,以便对于给定的列表,该函数返回每个元素的所有位置,并按升序对元素的频率进行排序。然后将dim()应用于一组性别:F F M M M M I I F I F M I F M I I M I I F 其中F,M和I分别代表女性,男性和婴儿。

我的代码如下:

dim <- function(f){
y <- unlist(f)
x <- list()
for (i in 1:length(y)){
  g1 <- y[i]
  x[[g1]] <- c(x[[g1]],i)
} freq <- sapply(x, length)
z <- sort(freq, decreasing = T)
lst <- list(x, z)
return(lst)
}
gender <- list("F", "F", "M", "M", "M", "M", "I", "I", "F", "I", "F", "M", "I", "F", "M", "I", "I", "M", "I", "I", "F")
dim (gender) 

我收到错误消息。

预先感谢

1 个答案:

答案 0 :(得分:-1)

freq部分之前可能只需要换行:

dim <- function(f){
  y <- unlist(f)
  x <- list()
  for (i in 1:length(y)){
    g1 <- y[i]
    x[[g1]] <- c(x[[g1]],i)
  } 
  freq <- sapply(x, length)  # on new line after curly bracket above
  z <- sort(freq, decreasing = T)
  lst <- list(x, z)
  return(lst)
}
gender <- list("F", "F", "M", "M", "M", "M", "I", "I", "F", "I", "F", "M", "I", "F", "M", "I", "I", "M", "I", "I", "F")
dim (gender) 

[[1]]
[[1]]$F
[1]  1  2  9 11 14 21

[[1]]$M
[1]  3  4  5  6 12 15 18

[[1]]$I
[1]  7  8 10 13 16 17 19 20


[[2]]
I M F 
8 7 6