小编Chr*_*isW的帖子

如何避免使用Javascript在多选框中按住Ctrl键单击?

我认为这将是一个简单的黑客攻击,但我现在已经搜索了几个小时,无法找到合适的搜索词.我希望有一个普通的多选框(<select multiple="multiple">),除了我不希望用户必须按住控制键进行多项选择.

换句话说,我想要左键单击以切换<option>光标下的元素而不更改任何其他元素.换句话说,我想要的东西看起来像一个组合列表框,但表现得像一组复选框.

任何人都可以在Javascript中建议一个简单的方法吗?谢谢.

html javascript forms dom

62
推荐指数
4
解决办法
5万
查看次数

在R公式中,为什么我必须在幂项上使用I()函数,比如y~I(x ^ 3)

我试图了解使用波浪号运算符和相关函数.我的第一个问题是为什么I()需要用来指定算术运算符?例如,这2个图产生不同的结果(前者有一条直线,后者有预期的曲线)

x <- c(1:100)
y <- seq(0.1,10,0.1)

plot(y~x^3)
plot(y~I(x^3))
Run Code Online (Sandbox Code Playgroud)

此外,以下两个图也产生预期结果

plot(x^3, y)
plot(I(x^3), y)
Run Code Online (Sandbox Code Playgroud)

我的第二个问题是,也许我一直在使用的例子太简单了,但我不明白~实际应该在哪里使用.

r formula tilde polynomials

44
推荐指数
1
解决办法
3万
查看次数

获取矩阵每列中第一次出现值的索引

如果我有一个向量,我可以得到低于值的第一个出现:

test <- c(0.5,0.8,0.1,0.08,0.06,0.04)
which(test<0.1)[1]    
Run Code Online (Sandbox Code Playgroud)

这正确地给出了答案4.但是,如何在矩阵的每列中首次出现,例如以下2列矩阵中的5次以下出现:

test2 <- matrix(c(5,8,3,4,7,5,6,2),ncol=2)
Run Code Online (Sandbox Code Playgroud)

使用applywith which返回一个列表:

> apply(test2<5,2,which)
[[1]]
[1] 3 4

[[2]]
[1] 4
Run Code Online (Sandbox Code Playgroud)

同时采用applywhich.min回报1所有列:

> apply(test2<5,2,which.min)
[1] 1 1
Run Code Online (Sandbox Code Playgroud)

然而,我想要的只是回归[1] 3 4- 我错过了一些明显的东西吗?

r

15
推荐指数
2
解决办法
2万
查看次数

强制将特定数据类型强制为函数的参数

我只是想知道是否有办法强制函数只接受某些数据类型,而不必在函数内检查它; 或者,这是不可能的,因为R的类型检查是在运行时完成的(而不是那些编程语言,例如Java,在编译期间进行类型检查)?

例如,在Java中,您必须指定数据类型:

class t2 {
    public int addone (int n) {
        return n+1;
    }
}
Run Code Online (Sandbox Code Playgroud)

在R中,可能有类似的功能

addone <- function(n)
{
    return(n+1)
}
Run Code Online (Sandbox Code Playgroud)

但是如果提供了一个向量,则(显然)将返回一个向量.如果你只想接受一个整数,那么这是在函数中有一个条件的唯一方法,就像

addone <- function(n)
{
  if(is.vector(n) && length(n)==1)
  {
    return(n+1)
  } else
  {
    return ("You must enter a single integer")
  }
}
Run Code Online (Sandbox Code Playgroud)

谢谢,
克里斯

r

10
推荐指数
3
解决办法
4581
查看次数

R图中的传说

我想将图上的图例分成2,以便前3个元素与第4个元素分开约1行高的间隙.我最初只是尝试在第一个元素之前添加换行符:

legend("topright",col=1,lty=1:3,lwd=1,legend=c("leg1","leg2","\nleg3"), bty="n")
Run Code Online (Sandbox Code Playgroud)

但这似乎增加了所有元素之间的差距(这是记录在案的行为吗?)

然后我使用2个单独的图例,设置边框"n"并使用lines()重建边框(顺便说一句,有没有办法只抑制图例的1个边框?); 虽然这有效,但它确实需要大量的试验和错误的值inset.

insetin 的默认值legend()c(0,0),但这些显然会在初始调用中legend()根据该图例元素中文本的长度进行调整.根据?legend,legend()呼叫的价值包括

"长度为长度的数字向量(图例),给出图例文本的x和y坐标."

无论如何,这可以转换为inset第二个调用的合适值,以便两个图例的元素对齐?

plot r legend

9
推荐指数
1
解决办法
4万
查看次数

围绕群体的边界

我在一个页面上有16个绘图,以4x4网格排列.我想在每组2x2周围有一个边框,但无法弄清楚如何做到这一点.

我最初用来layout(matrix(c(1,2,5,6,3,4,7,8,9,10,13,14,11,12,15,16), 4, 4, byrow=TRUE))创建正确的布局,但据我所知,没有办法创建超出当前绘图和边距重叠的任何后续绘图的边距.

我尝试的第二种方法是使用split.screen(),认为任何oma()设置只适用于当前屏幕,但是,它似乎适用于整个窗口; 例如,以下代码在整个显示区域的外部生成边框,而不是screen(1):

depths <- c(1:10)
split.screen(c(2,2))
screen(1)
par(oma=c(1,1,1,1))
plot(depths)
box("inner", lty="dotted", col="green")
Run Code Online (Sandbox Code Playgroud)

使用box("inner")box("outer")在设置oma设置后尝试各种操作不会产生所需的结果.

我还有其他明显的方法吗?

谢谢,
克里斯

r

8
推荐指数
2
解决办法
3133
查看次数

JSONP过时了吗?

使用各种方法来绕过同源策略,例如CORS(如果您可以访问托管文件的服务器),或者使用解析方法(例如getJSONjQuery中的方法),JSONP现在是否需要使用?

(我实际上很长一段时间都无法理解JSONP - 我不认为有些网站似乎忽略了它 - 例如,谷歌地图开发人员文档声明他们将数据作为JSON返回,但不做提到同源政策 - 他们是否天真地假设大多数人都知道这些问题并且可以解决这些问题,或者对于因为试图了解JSON和JSONP之间的技术差异而陷入困境而天真地对待我?

json jsonp

7
推荐指数
1
解决办法
562
查看次数

.R历史记录并保存所有警告()

关于此的文档似乎很少(除非我找错了地方!)。我在 Unix 上的命令行上运行 R:

R --no-save < myfile1.r >& out1.txt
Run Code Online (Sandbox Code Playgroud)

如果我有多个 R 脚本同时运行,是否必须将savehistory("history1.Rhistory")etc 放在每个文件的末尾,或者可以在命令行参数中给出 .Rhistory 文件的名称吗?

我还假设所有警告都保存在 R 工作区中;然而,似乎只有最后 50 个是可见的 ( There were 50 or more warnings (use warnings() to see the first 50)) - 有没有办法保存所有警告?

r

6
推荐指数
1
解决办法
7789
查看次数

复制文件并将其包含在CPack存档中

所以,有很多方法可以复制文件(和目录)在CMake运行时(file(COPY ...),configure_file(...)add_custom_command()所有的工作*),但我还没有发现如何从源复制到目录中建立文件或目录出现在生成的压缩文件通过CPack.我虽然这个SO答案会修复它,因为它实际上将复制链接到目标,然后将链接到它的安装:

install(TARGET mytarget DESTINATION bin)
Run Code Online (Sandbox Code Playgroud)

而我确实认识到file()configure_file()命令没有明显的方法被添加到目标.但是,这没有用.因此,给定一个简单的CMakeLists.txt,如下所示,如何使所有文件(包括exmaple目录)出现在存档中?!

cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
enable_language(FORTRAN)
add_executable(mytarget ${PROJECT_SOURCE_DIR}/myprog.for)
install(TARGETS mytarget DESTINATION bin)

add_custom_command(TARGET mytarget PREBUILD
                COMMAND ${CMAKE_COMMAND} -E copy_directory
                  ${PROJECT_SOURCE_DIR}/examplefiles ${PROJECT_BINARY_DIR}/examplefiles)

set(CPACK_GENERATOR "TGZ")
include(CPack)
Run Code Online (Sandbox Code Playgroud)

*我还没有发现这三种方法中哪一种实际上(大多数?)正确 - 所以对此的任何建议都将非常感激

cmake cpack

6
推荐指数
1
解决办法
7138
查看次数

强制CMake使用静态库

[无耻地从CMake帮助列表中交叉发布]

我正试图尽可能静态地创建二进制文件.我得到的fortran代码有X11和quadmath作为依赖项,我遇到了很多问题(可能每个问题都应该是一个不同的问题?):

  • 我的变量目前是

    set(CMAKE_LIBRARY_PATH /usr/X11/lib /usr/X11/include/X11 ${CMAKE_LIBRARY_PATH})
    find_package(X11 REQUIRED)
    find_library(X11 NAMES X11.a PATHS /usr/X11/include/X11/ /usr/X11/lib)
    find_library(X11_Xaw_LIB NAMES Xaw Xaw /usr/X11/include/X11/ /usr/X11/lib ${X11_LIB_SEARCH_PATH})
    find_library(Xaw Xaw7 PATHS ${X11_LIB_SEARCH_PATH})
    
    set(CMAKE_LIBRARY_PATH /usr/lib/gcc/x86_64-linux-gnu/4.7 /usr/lib/gcc/x86_64-linux-gnu/4.7/x32 /usr/lib/gcc/x86_64-linux-gnu/4.7/32 ${CMAKE_LIBRARY_PATH})
    
    find_library(quadmath NAMES quadmath.a)
    
    set(BUILD_SHARED_LIBS ON)
    set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
    set(LINK_SEARCH_START_STATIC TRUE)
    set(LINK_SEARCH_END_STATIC TRUE)
    
    set(SHARED_LIBS OFF)
    set(STATIC_LIBS ON)
    
    set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
    
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")
    
    Run Code Online (Sandbox Code Playgroud)

使用这些,CMake尝试静态地构建每个程序(如预期的那样) - 然而,它失败了因为我没有Xaw.a- 我无法确定这是否真的应该存在.我已经安装了libxaw7-dev我期望修复它的最新版本.一种选择是自己编译X11库,但我真的不想这样做......

  • 如果我只set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")注释掉,那么CMake会编译所有内容,但是每个程序都使用共享库,即使我.afind_library()调用中指定了X11库的位置.我期待CMake在可能的地方使用.a文件然后只使用共享库 - 有没有办法强制这种行为?

  • 有没有人知道这里描述的错误修复:http://gcc.gnu.org/bugzilla/show_bug.cgi?id = …

gcc cmake static-libraries gfortran static-linking

6
推荐指数
1
解决办法
4852
查看次数