我在R中有一个奇怪的问题。 我想创建一个包含两个变量的数据框,但是它却只给了我一个变量,需要进行大量观察。
在下面的示例中,第一个数据帧是正确的,并提供了三个变量,但是第二个数据帧仅是一个。 为什么会这样,我该如何更改?
谢谢
t1 <- c(1:5)
t2 <- c(1:5)
t3 <- c(1:5)
test.data <- data.frame(t1, t2, t3)
str(plot.data)
#Three variables are in the data frame.
one <- c(1:5)
two <- c(1:15)
three <- c(1:10)
plot.data <- data.frame("id"=rbind(
c(
rep(1,times = length(one)),
rep(2,times = length(two)),
rep(3,times = length(three)))), "obs"=
rbind(c(one, two, three))
)
str(plot.data)
#There is only one variable in the data frame, but there should be two (id and obs)!
答案 0 :(得分:0)
使用rbind
,您将获得一个数据结构,该数据结构要求您分别调用x
和y
以获取值:
> x <- rbind(
c(
rep(1,times = length(one)),
rep(2,times = length(two)),
rep(3,times = length(three))))
> y <- (rbind(c(one, two, three)))
> str(x)
num [1, 1:30] 1 1 1 1 1 2 2 2 2 2 ...
> str(y)
int [1, 1:30] 1 2 3 4 5 1 2 3 4 5 ...
要仅获取值(作为对比,只需键入x
并进行比较):
> x[,]
[1] 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3
> y[,]
[1] 1 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10
因此创建这样的数据框:
> df <- data.frame(x=x[,],y=y[,])
> df
x y
1 1 1
2 1 2
3 1 3
4 1 4
5 1 5
6 2 1
7 2 2