Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 选择字符串中的最后n个字符_R - Fatal编程技术网

R 选择字符串中的最后n个字符

R 选择字符串中的最后n个字符,r,R,我有以下数据集 df <-data.frame(fact=c("a,bo,v", "c,b,v,d", "c")) 我已尝试拆分行,然后选择最后两项: spl <- strsplit(as.character(df$fact), split = ",") tail(spl[[1]], n=2) spl您可以这样做: lapply(lapply(strsplit(as.character(df$fact), split = ','), function(x) x[c(length

我有以下数据集

df <-data.frame(fact=c("a,bo,v", "c,b,v,d", "c"))
我已尝试拆分行,然后选择最后两项:

spl <- strsplit(as.character(df$fact), split = ",")

tail(spl[[1]], n=2)
spl您可以这样做:

lapply(lapply(strsplit(as.character(df$fact), split = ','), function(x) x[c(length(x)-1,length(x))]), paste, collapse = ',')
拆分列,然后提取n和n-1索引。然后把它们粘在一起

您可以通过执行以下操作来概括这一点:

lapply(strsplit(as.character(df$fact), split = ','), function(x) x[(length(x)-n):length(x)] )
其中n是要采取的后退步骤的数量

使用
tail
更简单

lapply(strsplit(as.character(df$fact), split = ','), tail, n=2)
您可以这样做:

lapply(lapply(strsplit(as.character(df$fact), split = ','), function(x) x[c(length(x)-1,length(x))]), paste, collapse = ',')
拆分列,然后提取n和n-1索引。然后把它们粘在一起

您可以通过执行以下操作来概括这一点:

lapply(strsplit(as.character(df$fact), split = ','), function(x) x[(length(x)-n):length(x)] )
其中n是要采取的后退步骤的数量

使用
tail
更简单

lapply(strsplit(as.character(df$fact), split = ','), tail, n=2)

我们可以使用
sapply
事实
的每个元素上循环,
根据
拆分它,然后使用
尾部
选择最后的
n个
元素

n <- 2

sapply(as.character(df$fact), function(x) {
       temp = unlist(strsplit(x, ','))
       tail(temp, n)
}, USE.NAMES = F)

#[[1]]
#[1] "bo" "v" 

#[[2]]
#[1] "v" "d"

#[[3]]
#[1] "c"

我们可以使用
sapply
事实
的每个元素上循环,
根据
拆分它,然后使用
尾部
选择最后的
n个
元素

n <- 2

sapply(as.character(df$fact), function(x) {
       temp = unlist(strsplit(x, ','))
       tail(temp, n)
}, USE.NAMES = F)

#[[1]]
#[1] "bo" "v" 

#[[2]]
#[1] "v" "d"

#[[3]]
#[1] "c"

strsplit()用于拆分字符串,您给它的是一个因子而不是字符串,这就是它抛出错误的原因。没错,我尝试了这个
spl查看Chirayu的答案,您需要将函数strsplit()应用于df列。换句话说,你有一列字符串,现在你需要拆分每一列,apply(),lapply(),sapply()是应用函数的工具。strsplit()是用来拆分字符串的,你给它一个因子而不是字符串,这就是它抛出错误的原因。没错,我试过这个
spl检查Chirayu的答案,您需要将函数strsplit()应用于df列。换句话说,您有一列字符串,现在需要拆分每个字符串,apply()、lappy()和sapply()是应用函数的工具。这是一个很好的选择。再加一个,很好的选择。加一。