对于这个问题,我正在使用
library("shiny")
library("tuneR")
library("markdown")
Run Code Online (Sandbox Code Playgroud)
虽然我确信只有闪亮是相关的.
根据Shiny 标签词汇表,我应该可以使用
tags$audio(src = "wavs/tempwav.wav", type = "audio/wav", autoplay = NA, controls = NA)
Run Code Online (Sandbox Code Playgroud)
它生成html
<audio src="wavs/tempwav.wav" type="audio/wav" autoplay controls></audio>
Run Code Online (Sandbox Code Playgroud)
在Shiny服务器中播放声音.
我无法使用任何类型的mp3,wav或其他文件.Edge给出了"不支持此类音频文件"的错误,而RStudio网页和Chrome只显示空白播放控件.我想让它与Shiny程序即时生成的*.wav文件一起使用.正确生成wav文件并在我尝试的每个音乐播放器中正确播放(例如,VLC,WMP,MMgold,WinAmp等).
使用HTML文件中的代码,例如
<HTML>
<audio src="wavs/tempwav.wav" type="audio/wav" autoplay controls></audio>
</HTML>
Run Code Online (Sandbox Code Playgroud)
在任何浏览器中都可以正常工作 我认为这个问题可能与R Shiny如何处理目录有关.建议?
这个问题可以改写为“在 FILTER() 中使用以编程方式生成的范围”,具体取决于回答该问题所采取的方法。
提出这个问题是为了了解如何将变量范围传递到过滤函数中(如果可能的话)。
我目前正在使用以下功能进行过滤:
代码块1
=filter('Data Import'!1:10000,'Data Import'!D:D<12)
Run Code Online (Sandbox Code Playgroud)
导入数据后,ColumnD:D可以更改位置(例如,它可以在column 中F:F),但始终具有标题“student.grade”。
问题是:如何在过滤器函数中引用带有固定标题的可变位置列(如代码块 1 中给出的那样)?换句话说,我可以用有效的代码替换“数据导入”!D:D`,以便无论标题为“student.grade”的列的位置如何,该函数都可以工作吗?
我尝试过的:
我可以使用以下代码以字符串形式正确查找列的地址(无论数据导入后发生什么):
代码块2
=substitute(address(1,match("student.grade",'Data Import'!1:1,0),4),1,"")&":"&substitute(address(1,match("student.grade",'Data Import'!1:1,0),4),1,"")
Run Code Online (Sandbox Code Playgroud)
"D:D"当标题“student.grade”位于 cell 中D1以及"F:F"“student.grade”位于 cell 中时,上面代码块 2 中的函数返回F1。我以为我可以简单地将这个值插入到一个FILTER()函数中,然后就可以愉快地进行了,但是为了将我的字符串转换为可用的地址,我尝试对INDIRECT()上面代码块 2 中生成的字符串使用一个函数。
代码块3
=filter('Data Import'!1:3351,'Data Import'!indirect(substitute(address(1,match("student.grade",'Data Import'!1:1,0),4),1,"")&":"&substitute(address(1,match("student.grade",'Data Import'!1:1,0),4),1,""),TRUE)<12)
Run Code Online (Sandbox Code Playgroud)
该公式将无法正确解析。
简化同一函数的间接部分来测试它在给定范围时是否会产生相同的错误:
代码块4
=filter('Data Import'!1:3351,indirect('Data Import'!&"D:D")<12)
Run Code Online (Sandbox Code Playgroud)
这让我相信 INDIRECT() 不处理范围,或者如果处理范围,我不知道语法。这篇 Stack Overflow 帖子似乎表明这是可能的,但我无法弄清楚细节。
这个问题并不是试图让其他人帮助我解决我的编程困境。我可以使用各种脚本、大量的辅助 if 语句等等来做到这一点。
提出这个问题是为了了解如何将变量范围传递到过滤函数中(如果可能的话)。