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