【发布时间】:2019-02-11 14:54:17
【问题描述】:
我正在准备一个函数来定位一个数据中的列号,引用来自其他数据集的名称
我有 2 个数据集 test 1 和 test2,我正在准备一个函数来从另一个数据集 test 2(列号)中的 test1 中查找列名。
输入(测试1)
structure(list(mastercode_02 = c(3036696L, 3036696L, 3036696L,
3036696L, 3036696L, 3036696L), mastercode_03 = c(3039617L, 3039617L,
3039617L, 3039617L, 3039617L, 3039617L), mastercode_04 = c(3000470L,
3000470L, 3000470L, 3000470L, 3000470L, 3000470L), mastercode_05 = c(3039123L,
3039123L, 3039123L, 3039123L, 3039123L, 3039123L), mastercode_06 = c(1000054L,
1000054L, 1000054L, 1000054L, 1000054L, 1000054L), mastercode_07 = 1000001:1000006,
mastercode_08 = c(NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_), mastercode_09 = c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_
), mastercode_10 = c(NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_), mastercode_11 = c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_
), mastercode_12 = c(NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_)), class = c("data.table",
"data.frame"), row.names = c(NA, -6L), .internal.selfref = <pointer: 0x07fb2498>)
第二个数据
控制台~/
输入(测试2)
structure(list(QID_121 = c(NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_), QID_131 = c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_
), unitlevel = c(6, 6, 6, 6, 6, 6), mastercode_01 = c(NA, NA,
NA, NA, NA, NA), mastercode_02 = c(3036696L, 3036696L, 3036696L,
3036696L, 3036696L, 3036696L), mastercode_03 = c(3039617L, 3039617L,
3039617L, 3039617L, 3039617L, 3039617L), mastercode_04 = c(3000470L,
3000470L, 3000470L, 3000470L, 3000470L, 3000470L), mastercode_05 = c(3039123L,
3039123L, 3039123L, 3039123L, 3039123L, 3039123L), mastercode_06 = c(1000054L,
1000054L, 1000054L, 1000054L, 1000054L, 1000054L), mastercode_07 = 1000001:1000006,
mastercode_08 = c(NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_), mastercode_09 = c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_
), mastercode_10 = c(NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_), mastercode_11 = c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_
), mastercode_12 = c(NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_)), class = c("data.table",
"data.frame"), row.names = c(NA, -6L), .internal.selfref = <pointer: 0x07fb2498>)
我想要下面的东西,可以在其他函数中使用:
levelfun<-function(m,dataset){
levelname<-names(mastercodes)[[m]]
level_filter_data<-dataset%>% filter(unitlevel>m)
k=which(names(level_filter_data)==levelname)}
最后一行出现错误,可能是我应该使用替代哪个函数。
【问题讨论】:
-
。函数内部的
mastercodes是什么?另外,dataset不是函数的参数 -
如果你想找到一个索引基不列名,使用
matchmatch(names(test1), names(test2))
标签: r custom-function