R中的下标超出范围错误

R中的下标超出范围错误,r,R,我是新手,遇到了一个奇怪的错误。我有这样的桌子: dat<-c(1,2,3,4,4,53,62,345,3,4,346,23,34,52,34,2345,23,4) dat.table<-table(dat) 这可能是一个基本问题,但奇怪的是,为什么R对不同的行名表现不同!! 非常感谢您的帮助。访问dat.table项目: dat.table['2345'] 2345 1 dat.table不是data.frame。请尝试以下操作: ddf = data.frame

我是新手,遇到了一个奇怪的错误。我有这样的桌子:

 dat<-c(1,2,3,4,4,53,62,345,3,4,346,23,34,52,34,2345,23,4)
 dat.table<-table(dat)
这可能是一个基本问题,但奇怪的是,为什么R对不同的行名表现不同!!
非常感谢您的帮助。

访问dat.table项目:

dat.table['2345']
2345 
   1 
dat.table不是data.frame。请尝试以下操作:

ddf = data.frame(dat.table)
ddf
    dat Freq
1     1    1
2     2    1
3     3    2
4     4    4
5    23    2
6    34    2
7    52    1
8    53    1
9    62    1
10  345    1
11  346    1
12 2345    1

 ddf[12,]
    dat Freq
12 2345    1

ddf[12,2]
[1] 1
ddf[[i]]给出了第i列:

ddf[[1]]
 [1] 1    2    3    4    23   34   52   53   62   345  346  2345
Levels: 1 2 3 4 23 34 52 53 62 345 346 2345

ddf[[2]]
 [1] 1 1 2 4 2 2 1 1 1 1 1 1
对于宽data.frame:

tt = data.frame(t(ddf))

tt
     X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11  X12
dat   1  2  3  4 23 34 52 53 62 345 346 2345
Freq  1  1  2  4  2  2  1  1  1   1   1    1

碰巧,出现的“3”存储在
dat.table
的第3列中

让我们试试这个例子(添加2个零):

正确的

“2345”是一个字符,列的名称。键入
dat.table[[2345]]
时,您尝试访问不存在的2345元素。您需要指定列的名称

dat <- c(1,2,3,4,4,53,62,345,3,4,346,23,34,52,34,2345,23,4)
dat.table <- table(dat)
dat.table[["2345"]]
[1] 1 
dat
dat <- c(0,1,2,3,4,4,53,62,345,3,4,346,23,34,0,52,34,2345,23,4)
dat.table[[3]]
[1] 1
dat.table[["3"]]
[1] 2
dat <- c(1,2,3,4,4,53,62,345,3,4,346,23,34,52,34,2345,23,4)
dat.table <- table(dat)
dat.table[["2345"]]
[1] 1