R 试图复制数据帧中的行?
我在提示符下发出了以下命令R 试图复制数据帧中的行?,r,dataframe,rep,R,Dataframe,Rep,我在提示符下发出了以下命令 v id a b c d 1 1 1 Adam Smith 10 2 2 2 John Bond 15 3 3 3 Sam Ted 20 但我实际上得到的是: > v1 id a b c d 1 1 1 Adam Smith 10 2 2 2 John Bond 15 3 3 3 Sam Ted 20 4 4 5 Deb Jones 25 5 4 5 Deb Jones 25 6
v
id a b c d
1 1 1 Adam Smith 10
2 2 2 John Bond 15
3 3 3 Sam Ted 20
但我实际上得到的是:
> v1
id a b c d
1 1 1 Adam Smith 10
2 2 2 John Bond 15
3 3 3 Sam Ted 20
4 4 5 Deb Jones 25
5 4 5 Deb Jones 25
6 4 5 Deb Jones 25
7 4 5 Deb Jones 25
8 4 5 Deb Jones 25
为什么第45行Deb Jones 25在v1中只出现一次,而不是5次
我是新手。所以请用简单的英语解释。谢谢你的帮助
谢谢,rep不是这样工作的-它只是将输出连接到一个向量中,看起来像是一行rbind。然后,rbind修剪其输入以匹配最短长度行
相反,您可以在适当长度为5的向量上使用lappy,并每次返回该行。行列表rep不是这样工作的-它只是将输出连接成一个向量,看起来像是要rbind的一行。然后,rbind修剪其输入以匹配最短长度行
相反,您可以在适当长度为5的向量上使用lappy,并每次返回该行。listofrows您也可以只传递一个list对象来填充v中所需的行
您也可以只传递一个list对象来填充v中所需的行
rep在一行中创建一个包含45个Deb Jones 25的5个副本的向量rep在一行中创建一个包含45个Deb Jones 25的5个副本的向量请注意,这会将所有内容强制为字符,然后是因子-例如-查看c4,5,Deb,Jones,25的结果-类似于setNamesdata。framelist4,5,Deb,Jones,25,namesv[rep1,5,]可能是一种转换,以确保数字数据保持数字。您可以通过在答案中将c替换为list来避免这种情况,但data.frame具有list列。。。哦,但是使用unlist可以解决这个问题。谢谢。我编辑了答案请注意,这会强制所有内容使用字符,然后使用一个因子-例如-查看c4,5,Deb,Jones,25的结果-类似于setNamesdata。framelist4,5,Deb,Jones,25,namesv[rep1,5,]可能是一种翻译,以确保数字数据保持数字。您可以通过在答案中用list替换c来避免这种情况,但是data.frame有列表列。。。哦,但是使用unlist可以解决这个问题。谢谢。我编辑了答案
> v1
id a b c d
1 1 1 Adam Smith 10
2 2 2 John Bond 15
3 3 3 Sam Ted 20
4 4 5 Deb Jones 25
5 4 5 Deb Jones 25
6 4 5 Deb Jones 25
7 4 5 Deb Jones 25
8 4 5 Deb Jones 25
> v1
id a b c d
1 1 1 Adam Smith 10
2 2 2 John Bond 15
3 3 3 Sam Ted 20
4 4 5 Deb Jones 25
X1 X2 X3 X4 X5
1 4 5 Deb Jones 25
2 4 5 Deb Jones 25
3 4 5 Deb Jones 25
4 4 5 Deb Jones 25
5 4 5 Deb Jones 25
df <-lapply(df_tmp, unlist)
str(df)
List of 5
$ X1: num [1:5] 4 4 4 4 4
$ X2: num [1:5] 5 5 5 5 5
$ X3: chr [1:5] "Deb" "Deb" "Deb" "Deb" ...
$ X4: chr [1:5] "Jones" "Jones" "Jones" "Jones" ...
$ X5: num [1:5] 25 25 25 25 25
v[4:8,] <- list(4,5,"Deb","Jones",25)
# or without knowing the number of rows:
v[(nrow(v)+1):(nrow(v)+5),] <- list(4,5,"Deb","Jones",25)
# id a b c d
#1 1 1 Adam Smith 10
#2 2 2 John Bond 15
#3 3 3 Sam Ted 20
#4 4 5 Deb Jones 25
#5 4 5 Deb Jones 25
#6 4 5 Deb Jones 25
#7 4 5 Deb Jones 25
#8 4 5 Deb Jones 25
v <- data.frame(id=1:3, a=1:3, b=c("Adam","John","Sam"),
c=c("Smith","Bond","Ted"), d=c(10,15,20), stringsAsFactors=FALSE)