从dataframe创建字符串
我的数据帧从dataframe创建字符串,r,string,dataframe,dplyr,plyr,R,String,Dataframe,Dplyr,Plyr,我的数据帧 x1 <- data.frame(C1 = letters[1:4], C3=1:4, C3=letters[11:14]) 但这并没有给我想要的输出 这就是你想要的吗 paste0(x1[,1], x1[,2]) # [1] "a1" "b2" "c3" "d4" 那么: as.list(paste0(x1[,1], x1[,2])) # [[1]] # [1] "a1" # # [[2]] # [1] "b2" # # [[3]] # [1] "c3" # # [
x1 <- data.frame(C1 = letters[1:4], C3=1:4, C3=letters[11:14])
但这并没有给我想要的输出 这就是你想要的吗
paste0(x1[,1], x1[,2])
# [1] "a1" "b2" "c3" "d4"
那么:
as.list(paste0(x1[,1], x1[,2]))
# [[1]]
# [1] "a1"
#
# [[2]]
# [1] "b2"
#
# [[3]]
# [1] "c3"
#
# [[4]]
# [1] "d4"
不管你有多少行。您只需要指定要粘贴到字符串中的列 这里有一种使用lappy的方法:
lapply(1:nrow(x1), function(i) c(x1[i,1], x1[i,2]))
结果是
[[1]]
[1] "a" "1"
[[2]]
[1] "b" "2"
[[3]]
[1] "c" "3"
[[4]]
[1] "d" "4"
数据
x1 <- data.frame(C1 = letters[1:4], C3=1:4, C3=letters[11:14],
stringsAsFactors = F)
x1如果有多列,我们可以使用do.call
as.list(do.call(paste0, x1[-3]))
差不多。我需要一份清单。我也不知道我的数据框有多大。也许它有1000行,也许只有2行。我只知道我想改造哪根柱子<代码>拆分(如矩阵(x1[,1:2]),顺序(nrow(x1)))
我猜。不过这是一个奇怪的手术。@Frank为什么这是一个奇怪的手术?你的代码给了我[1]“b”2“
。我需要[1]“b2”嗯,现在我真的很困惑,因为你的问题实际上是说“我需要一些东西[…]c(“b”,“2”)
”,大概是描述期望的输出。无论如何,(i)使用存储为字符串的数字,(ii)将data.frame逐行拆分是一种奇怪的操作。一般来说,这些步骤在R中是不必要的。@Frank我应该用不同的措辞!我猜这取决于你做什么;)我需要它!FWIW,这并不是故意的恶作剧。我只是想问一下do的附加值。打电话给@gung谢谢你的回复。我误解了你的评论。很抱歉
x1 <- data.frame(C1 = letters[1:4], C3=1:4, C3=letters[11:14],
stringsAsFactors = F)
as.list(do.call(paste0, x1[-3]))