Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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中的新向量中的列(按名称)分组_R_Vector_Dplyr_Grouping_Tidyr - Fatal编程技术网

生成向量,将R中的新向量中的列(按名称)分组

生成向量,将R中的新向量中的列(按名称)分组,r,vector,dplyr,grouping,tidyr,R,Vector,Dplyr,Grouping,Tidyr,我有一个类似于原始的数据集,带有数字(NP)和二进制(所有其他)变量(我的数据集要大得多,包括更多的数字和虚拟变量): NP您可以使用grepl查找姓名,并在apply中使用查找职位 tt <- paste0("^", unique(sub("_[^_]+$", "_", names(original))), "([^_]+$|$)") apply(sapply(tt, grepl, names(origina

我有一个类似于原始的数据集,带有数字(NP)和二进制(所有其他)变量(我的数据集要大得多,包括更多的数字和虚拟变量):


NP您可以使用
grepl
查找姓名,并在
apply
中使用
查找职位

tt <- paste0("^", unique(sub("_[^_]+$", "_", names(original))), "([^_]+$|$)")
apply(sapply(tt, grepl, names(original)), 1, which)
# [1] 1 2 2 2 3 3 3 4 4 4

tt伟大的解决方案!由于有大量列(+1700),我甚至可能看不到所有列的模式。因此,是否有一种方法可以自动选择变量(即R标识名称NP、iso_mode_uuu、exp_sector等)?另一个问题是,当我将代码应用于我的数据(其中我有一个由字符和因子变量组成的数据框)时,我会得到一个列表作为结果,并且没有重复给定组的号码。也许更新是你想要的。正是这个!非常感谢:)有没有一种直接从代码中获取“tt”中标识的名称的方法?
vector <- c("1", "2", "2", "2", "3", "3", "3", "4", "4", "4")
tt <- paste0("^", unique(sub("_[^_]+$", "_", names(original))), "([^_]+$|$)")
apply(sapply(tt, grepl, names(original)), 1, which)
# [1] 1 2 2 2 3 3 3 4 4 4