R: add character vector to data.frame row
我有一个数据帧(DF),如下所示:
1 2 3 | a e 1 4 d f 2 5 c g 3 6 |
我需要在DF的第一行插入一个向量c(" g," H",7,8),以便它看起来像这样
1 2 3 4 | g H 7 8 a e 1 4 d f 2 5 c g 3 6 |
但是当我使用此命令行`InsertRow(DF,vector,RowNum = 1)'时,它将返回警告消息,并且DF的第一行最终像这样
警告消息:
1:在
无效因子水平,NA生成
2:在
无效的因子水平,NA生成了
1 | <NA> <NA> 7 8 |
有人可以告诉我如何解决此问题吗?预先感谢。
假设初始数据集('DF')具有一些"因素"列,如帖子中所示。在
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | indx <- sapply(DF, is.factor) DF[indx] <- lapply(DF[indx], as.character) DF1 <- rbind(v, DF) DF1[] <- lapply(DF1, type.convert) DF1 # V1 V2 V3 V4 #1 g H 7 8 #2 a e 1 4 #3 d f 2 5 #4 c g 3 6 str(DF1) #'data.frame': 4 obs. of 4 variables: # $ V1: Factor w/ 4 levels"a","c","d","g": 4 1 3 2 # $ V2: Factor w/ 4 levels"e","f","g","H": 4 1 2 3 # $ V3: int 7 1 2 3 # $ V4: int 8 4 5 6 |
数据
1 2 3 4 5 6 | DF <- structure(list(V1 = structure(c(1L, 3L, 2L), .Label = c("a", "c","d"), class ="factor"), V2 = structure(1:3, .Label = c("e", "f","g"), class ="factor"), V3 = 1:3, V4 = 4:6), .Names = c("V1", "V2","V3","V4"), class ="data.frame", row.names = c(NA, -3L)) v <- c('g', 'H', 7, 8) |