Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.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 DT中包含超链接的列_R_Dt - Fatal编程技术网

如何筛选r DT中包含超链接的列

如何筛选r DT中包含超链接的列,r,dt,R,Dt,我有一个列“url”,其中包含超链接。链接文本是整数。如何使列过滤在DataTables中工作,以便使用链接文本而不是超链接的html执行过滤?以下是一个例子: library(DT) df <- data.frame(Val = c("A", "B"), url = c("<a href='https://www.google.com'>1</a>", "<a href='https://www.google.com'>2</a>")) d

我有一个列“url”,其中包含超链接。链接文本是整数。如何使列过滤在DataTables中工作,以便使用链接文本而不是超链接的html执行过滤?以下是一个例子:

library(DT)
df <- data.frame(Val = c("A", "B"), url = c("<a href='https://www.google.com'>1</a>", "<a href='https://www.google.com'>2</a>"))
datatable(df, escape = FALSE, filter = list(position = "top"))
库(DT)

df是否需要url文本为整数?如果没有,一种快速而肮脏的方法是重构html节点,使url的字符串可见

df
library(DT)

除非我误解了这个问题,否则它看起来就像你已经问过的那样。您是否尝试根据1和2筛选URL列?我编辑了我给出的示例。我想做的是根据url列中的值1和2筛选行。这有点误导,因为我在val列中也有1和2,所以我将它们改为a和B。哦,我现在明白了,我也不希望它有这样的行为!我想我的问题表述得很糟糕。请看我上面的评论。
df <- data.frame(Val = c(1,2), url = c("<a href='https://www.google.com'>1</a>", "<a href='https://www.bbc.com'>2</a>")      
df$string_url <-paste("<a href ='", (str_match(df$url, "'(.*?)'")[,2]), "'>", (str_match(df$url, "'(.*?)'")[,2]), "</a>", sep = "" )    
datatable(df[c("Val","string_url")], escape = FALSE, filter = list(position = "top"))
library(DT)

render <- c(
  "function(data, type, row){",
  "  if(type === 'display'){",
  "    var a = '<a href=\"' + row[3] + '\">' + data + '</a>';",
  "    return a;",
  "  } else {",
  "    return data;",
  "  }",
  "}"
)

df <- data.frame(
  Val = c("A", "B"), 
  url = c("google", "stackoverflow"),
  href = c("https://www.google.com", "https://www.stackoverflow.com")
)
datatable(df, escape = FALSE, filter = list(position = "top"), 
          options = list(
            columnDefs = list(
              list(targets = 2, render = JS(render)),
              list(targets = 3, visible = FALSE)
            )
          )
)