Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.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,我正在处理这个数据帧: Col0 <- c("AA","BB","CC","DD","EE","FF") Col1 <- c(2,4,2,6,1,1) Col2 <- c(3,3,2,1,3,4) Col3 <- c(2,2,3,4,6,6) Col4 <- c(1,3,3,1,2,1) Col5 <- c(2,1,1,1,1,4) Col6 <- c(2,4,2,5,4,4) Col7 <- c(3,3,2,1,0,9) Col8 <- c

我正在处理这个数据帧:

Col0 <- c("AA","BB","CC","DD","EE","FF")
Col1 <- c(2,4,2,6,1,1)
Col2 <- c(3,3,2,1,3,4)
Col3 <- c(2,2,3,4,6,6)
Col4 <- c(1,3,3,1,2,1)
Col5 <- c(2,1,1,1,1,4)
Col6 <- c(2,4,2,5,4,4)
Col7 <- c(3,3,2,1,0,9)
Col8 <- c(2,2,3,4,5,4)
Col9 <- c(1,3,3,2,2,2)
df <- data.frame(Col0,Col1,Col2,Col3,Col4,Col5,Col6,Col7,Col8,Col9)

Col0我认为您可以简化您的函数,同时在
stringval
的长度方面使其更加灵活

f1 <- function(dataframe, stringval) { 

  ids <- unlist(strsplit(stringval, "-")) # Create vector of letters
  finaldf <- dataframe[dataframe[,1] %in% ids,] # Use them to subset 1st col
  return(finaldf)

}

# For example:
f1(df, "AA-CC-FF-EE")
#  Col0 Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9
#1   AA    2    3    2    1    2    2    3    2    1
#3   CC    2    2    3    3    1    2    2    3    3
#5   EE    1    3    6    2    1    4    0    5    2
#6   FF    1    4    6    1    4    4    9    4    2

f1我认为您可以简化您的函数,同时在
stringval
的长度方面使其更加灵活

f1 <- function(dataframe, stringval) { 

  ids <- unlist(strsplit(stringval, "-")) # Create vector of letters
  finaldf <- dataframe[dataframe[,1] %in% ids,] # Use them to subset 1st col
  return(finaldf)

}

# For example:
f1(df, "AA-CC-FF-EE")
#  Col0 Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9
#1   AA    2    3    2    1    2    2    3    2    1
#3   CC    2    2    3    3    1    2    2    3    3
#5   EE    1    3    6    2    1    4    0    5    2
#6   FF    1    4    6    1    4    4    9    4    2

f1
stringval
是否必须是“字符”?您可以在%c(…)中使用类似于
f=function(x,…)x[x[[1]]%的东西,]
并将其称为
f(df,“AA”,“CC”,“DD”)
,但如果您的“f”只是子集,您可以直接在%c(“AA”,“CC”,“DD”)中使用
df[df[[1]%],]
遵循alexis_laz的注释,而不是这种笨拙的方法。构建了一个函数,用
strsplit
将stringval分解为一个值向量,并将其导入新函数中。是否
stringval
必须是一个“字符”?您可以在%c(…)中使用类似于
f=function(x,…)x[x[[1]]%的东西,]
并将其称为
f(df,“AA”,“CC”,“DD”)
,但如果您的“f”只是子集,您可以直接在%c(“AA”,“CC”,“DD”)中使用
df[df[[1]%],]
遵循alexis_laz的注释,而不是这种笨拙的方法。构建了一个函数,用
strsplit
将stringval分解为一个值向量,并将其导入新函数中。非常有效,谢谢。当我投票时,我会给你的答案打分,谢谢。当我投票时,我会给你的答案打分