Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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_Json_String_List_Data.table - Fatal编程技术网

基于R中相同列表中的字符串创建新列

基于R中相同列表中的字符串创建新列,r,json,string,list,data.table,R,Json,String,List,Data.table,对不起,如果这是重复的。然而,我在三十分钟的搜索之后,却找不到类似的东西 dput: structure(list(i = c("KHH", "KHH", "KHH", "KHH", "KHH", "KHH", "KHH", "KHH", "KHH", "KHH", "KHH", "KHH", "KHH", "KHH", "KHH", "KHH", "KHH", "KHH", "YYR", "YYR", "YYR", "YYR", "YYR", "YYR", "YYR", "YYR"),

对不起,如果这是重复的。然而,我在三十分钟的搜索之后,却找不到类似的东西

dput:

structure(list(i = c("KHH", "KHH", "KHH", "KHH", "KHH", "KHH", 
"KHH", "KHH", "KHH", "KHH", "KHH", "KHH", "KHH", "KHH", "KHH", 
"KHH", "KHH", "KHH", "YYR", "YYR", "YYR", "YYR", "YYR", "YYR", 
"YYR", "YYR"), n = c("Changzhi", "Chaochou", "Chaozhou", "Checheng", 
"Donggang", "Fangliao", "Fangshan", "Fengshan", "Gaoshu", "Hengchun Old Town", 
"Jiuru", "Linbian", "Liuqiu", "Manzhou", "Pingtung", "Tungkang", 
"Wanluan", "Yanpu", "Cartwright", "Happy Valley - Goose Bay", 
"Hopedale", "Makkovik", "Nain", "Natuashish", "Postville", "Rigolet"
), c = c("Taiwan", "Taiwan", "Taiwan", "Taiwan", "Taiwan", "Taiwan", 
"Taiwan", "Taiwan", "Taiwan", "Taiwan", "Taiwan", "Taiwan", "Taiwan", 
"Taiwan", "Taiwan", "Taiwan", "Taiwan", "Taiwan", "Canada", "Canada", 
"Canada", "Canada", "Canada", "Canada", "Canada", "Canada"), 
    C = c("TW", "TW", "TW", "TW", "TW", "TW", "TW", "TW", "TW", 
    "TW", "TW", "TW", "TW", "TW", "TW", "TW", "TW", "TW", "CA", 
    "CA", "CA", "CA", "CA", "CA", "CA", "CA"), r = c("Eastern Asia", 
    "Eastern Asia", "Eastern Asia", "Eastern Asia", "Eastern Asia", 
    "Eastern Asia", "Eastern Asia", "Eastern Asia", "Eastern Asia", 
    "Eastern Asia", "Eastern Asia", "Eastern Asia", "Eastern Asia", 
    "Eastern Asia", "Eastern Asia", "Eastern Asia", "Eastern Asia", 
    "Eastern Asia", "Northern America", "Northern America", "Northern America", 
    "Northern America", "Northern America", "Northern America", 
    "Northern America", "Northern America"), L = c(120.576, 120.539, 
    120.533, 120.717, 120.482, 120.593, 120.657, 120.35, 120.625, 
    120.744, 120.487, 120.488, 120.383, 120.848, 120.488, 120.449, 
    120.625, 120.574, -57.042, -60.377, -60.229, -59.186, -61.68, 
    -61.184, -59.785, -58.458), F = c(22.701, 22.55, 22.552, 
    22.06, 22.459, 22.368, 22.249, 22.633, 22.737, 22.005, 22.725, 
    22.428, 22.352, 21.991, 22.672, 22.465, 22.612, 22.76, 53.683, 
    53.31, 55.448, 55.077, 56.549, 55.914, 54.91, 54.18)), sorted = "i", class = c("data.table", 
"data.frame"), row.names = c(NA, -26L))
dput无法处理list/data.table,因此我将其作为数据帧。如果它能帮助您将其放入列表中,那么您可以运行splitdf[,-1],df$i

我想获取每个列表中每一行的名称,并将其放入每一行的新列表中

我有一个大列表,如下所示:

    i                        n      c  C                r       L      F
1 YYR               Cartwright Canada CA Northern America -57.042 53.683
2 YYR Happy Valley - Goose Bay Canada CA Northern America -60.377 53.310
3 YYR                 Hopedale Canada CA Northern America -60.229 55.448
4 YYR                 Makkovik Canada CA Northern America -59.186 55.077
5 YYR                     Nain Canada CA Northern America -61.680 56.549   <-- this row is used in the example
6 YYR               Natuashish Canada CA Northern America -61.184 55.914
...
df$YYR[n][5,]


df$YYR[[x]][5]我不完全理解您想要什么,但这将产生示例结果:

res = df[, .(d = c(i, n), idx = 0:.N), by = i]
res[res[idx > 0], on = .(i), allow = T, .(d, n = i.d, idx)][d != n]
#              d        n idx
#  1:        KHH Changzhi   0
#  2:   Chaochou Changzhi   2
#  3:   Chaozhou Changzhi   3
#  4:   Checheng Changzhi   4
#  5:   Donggang Changzhi   5
# ---                        
#384:   Hopedale  Rigolet   3
#385:   Makkovik  Rigolet   4
#386:       Nain  Rigolet   5
#387: Natuashish  Rigolet   6
#388:  Postville  Rigolet   7

您的dput出现错误。错误:意外“@RonakShah可能现在已修复?@RonakShah正常,因此dput无法处理data.table。这就是为什么dput不是working@jaksco我不明白你想要的输出和你的样本输入之间有什么关系。你能解释一下吗?@eddi我已经简化了输出中的示例。这太完美了!!如何将其作为列表上的函数运行?拉普拉?通过执行res=withlist,KHH[,.d=ci,n,idx=0:.n,by=I],然后执行第二部分,我可以为列表$KHH运行此命令。是否有一种方法可以运行此命令,以便将两个命令的输出都粘贴在同一行的嵌套列表中,即list$KHH?如果我键入类似list$KHH[,cres]或其他列表元素,我希望显示此输出
[1] "Nain"
...
[[5]]
                         d n      index
1                      YYR Nain   0
2               Cartwright Nain   1
3 Happy Valley - Goose Bay Nain   2
4                 Hopedale Nain   3
5                 Makkovik Nain   4
6               Natuashish Nain   6

...
[
  {
    "d": "YYR",
    "n": "Nain",
    "index": 0
  },
  {
    "d": "Cartwright",
    "n": "Nain",
    "index": 1
  },
  {
    "d": "Happy Valley - Goose Bay",
    "n": "Nain",
    "index": 2
  },
  {
    "d": "Hopedale",
    "n": "Nain",
    "index": 3
  },
  {
    "d": "Makkovik",
    "n": "Nain",
    "index": 4
  },
...
]
res = df[, .(d = c(i, n), idx = 0:.N), by = i]
res[res[idx > 0], on = .(i), allow = T, .(d, n = i.d, idx)][d != n]
#              d        n idx
#  1:        KHH Changzhi   0
#  2:   Chaochou Changzhi   2
#  3:   Chaozhou Changzhi   3
#  4:   Checheng Changzhi   4
#  5:   Donggang Changzhi   5
# ---                        
#384:   Hopedale  Rigolet   3
#385:   Makkovik  Rigolet   4
#386:       Nain  Rigolet   5
#387: Natuashish  Rigolet   6
#388:  Postville  Rigolet   7