我正在尝试为输入文件处理一些字符串。首先,我将字符串从向量转换为列表,然后减少为唯一值。
接下来,我想将每个列表元素中的单词转换为分隔符为 ':1' 的字符串。
我可以使该函数在单个列表元素上工作,但是当我尝试使用ldply
fromplyr
为整个列表执行此操作时,我只能得到每个列表元素中的最后一个单词。
这是代码:
library(plyr)
df1 <- data.frame(id = seq(1,5,1), string1 = NA)
head(df1)
df1$string1[1] <- "This string is a string."
df1$string1[2] <- "This string is a slightly longer string."
df1$string1[3] <- "This string is an even longer string."
df1$string1[4] <- "This string is a slightly shorter string."
df1$string1[5] <- "This string is the longest string of all the other strings."
df1$string1 <- tolower(as.character(df1$string1))
df1$string1 <- gsub('[[:punct:]]',' ',df1$string1)
df1$string1 <- gsub('[[:digit:]]',' ',df1$string1)
df1$string1 <- gsub("\\s+"," ",df1$string1)
fdList1 <- strsplit(df1$string1, " ", df1$string1)
fdList2 <- lapply(fdList1, unique)
toString1 <- function(x){
string2 <- c()
#print(length(x[1][1]))
#print(x)
#print(class(x))
for(i in length(x)){
string2 <- paste0(string2, x[[i]], ":1 ", collapse="")
}
string2
}
df2 <- ldply(fdList2, toString1)
df2
v1 <- toString1(fdList2[2])
v1
df2
错了,我想要一个类似于v1
每个列表元素的向量。
有什么建议么?