Ben Bolker的paste2解决方案产生了一个""粘贴的字符串包含NA在同一位置的时间.像这样,
> paste2(c("a","b", "c", NA), c("A","B", NA, NA))
[1] "a, A" "b, B" "c" ""
Run Code Online (Sandbox Code Playgroud)
第四个元素是一个""而不是NA像这样,
[1] "a, A" "b, B" "c" NA
Run Code Online (Sandbox Code Playgroud)
我正在为能解决这个问题的人提供这笔小额奖金.
我已经阅读了帮助页面?paste,但我不明白如何让R忽略NAs.我做了以下,
foo <- LETTERS[1:4]
foo[4] <- NA
foo
[1] "A" "B" "C" NA
paste(1:4, foo, sep = ", ")
Run Code Online (Sandbox Code Playgroud)
得到
[1] "1, A" "2, B" "3, C" "4, NA"
Run Code Online (Sandbox Code Playgroud)
我想得到什么,
[1] "1, A" "2, B" "3, C" "4" …Run Code Online (Sandbox Code Playgroud) 我想采用带有字符和数字的数据框,并将每行的所有元素连接成一个字符串,该字符串将作为单个元素存储在向量中.作为一个例子,我创建一个字母和数字的数据框,然后我想通过粘贴函数连接第一行,并希望返回值"A1"
df <- data.frame(letters = LETTERS[1:5], numbers = 1:5)
df
## letters numbers
## 1 A 1
## 2 B 2
## 3 C 3
## 4 D 4
## 5 E 5
paste(df[1,], sep =".")
## [1] "1" "1"
Run Code Online (Sandbox Code Playgroud)
因此,粘贴将行的每个元素转换为一个整数,该整数对应于"相应级别的索引",就像它是一个因子一样,并且它保持长度为2的向量.(我知道/相信被强制为字符的因素会以这种方式运行,但由于R根本没有存储df [1,]作为因素(由is.factor()测试,我无法验证它实际上是一个级别的索引)
is.factor(df[1,])
## [1] FALSE
is.vector(df[1,])
## [1] FALSE
Run Code Online (Sandbox Code Playgroud)
因此,如果它不是一个向量,那么它的行为很奇怪,但我无法将它强制转换为向量
> is.vector(as.vector(df[1,]))
[1] FALSE
Run Code Online (Sandbox Code Playgroud)
使用as.character似乎对我的尝试没有帮助
谁能解释这种行为?
我希望能够在用户点击时启动真正的粘贴事件.我可以理解这可能是一个安全问题,因为如果任何网页有权访问用户剪贴板,那就不好了.所以我认为所有浏览器都不允许访问剪贴板数据.
但是例如在谷歌文档(在类似文字的应用程序中),我可以从自定义上下文菜单粘贴(鼠标右键单击假装为上下文菜单的html元素),即使剪贴板数据已被复制到剪贴板中应用程序,如Microsoft Paint.这适用于Google Chrome浏览器,这是我感兴趣的浏览器.
我认为他们使用闪光灯,但即使我完全禁用闪光灯,它仍然有效.关于这个问题已经有了问题,但提到的答案并不正确.该问题的另一个答案表明谷歌正在使用Chrome扩展程序,但即使我禁用了Chrome中的所有扩展程序,它仍然有效.
如何在Windows中重现:
如果用户在我的网页上按下Ctrl + V,我知道如何访问剪贴板数据,因为这会在当前窗口中触发粘贴事件.但是,如何在用户只需单击按钮或div时,在javascript(或使用jquery)中访问剪贴板数据或启动实际剪贴板数据(例如,在mspaint中复制的位图)的粘贴?
我在输入中捕获粘贴文本时遇到一些麻烦:
<input type="text" id="myid" val="default">
$('#myid').on('paste',function(){
console.log($('#myid').val());
});
Run Code Online (Sandbox Code Playgroud)
console.log显示:
default
Run Code Online (Sandbox Code Playgroud)
我如何catch粘贴文本并准备使用?
我想将此输出存储在一个字符串中:
> x=1:5
> cat("hi",x)
hi 1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)
所以我用paste,但我得到了这个不同的结果:
> paste("hi",x)
[1] "hi 1" "hi 2" "hi 3" "hi 4" "hi 5"
Run Code Online (Sandbox Code Playgroud)
知道如何获取字符串:
"hi 1 2 3 4 5"
Run Code Online (Sandbox Code Playgroud)
非常感谢你!
Clipboard.SetText()
System.Windows.Forms.Clipboard.SetText(
"1,2,3,4\n5,6,7,8",
System.Windows.Forms.TextDataFormat.CommaSeparatedValue
);
Run Code Online (Sandbox Code Playgroud)
Clipboard.SetData()
System.Windows.Forms.Clipboard.SetData(
System.Windows.Forms.DataFormats.CommaSeparatedValue,
"1,2,3,4\n5,6,7,8",
);
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,都会在剪贴板上放置一些内容,但是当粘贴到Excel中时,它会显示为一个加载文本的单元格:" - §žý; pC |yVk²û"
正如BFree的答案所示,SetText与TextDataFormat一起作为一种解决方法
System.Windows.Forms.Clipboard.SetText(
"1\t2\t3\t4\n5\t6\t7\t8",
System.Windows.Forms.TextDataFormat.Text
);
Run Code Online (Sandbox Code Playgroud)
我已经尝试了这一点,并确认现在粘贴到Excel和Word正常工作.在每种情况下,它都会粘贴为带有单元格而不是纯文本的表格.
仍然好奇,为什么CommaSeparatedValue是不工作的.
我是一个新的python afficionado.对于R用户,有一个功能:粘贴有助于连接数据框中的两个或多个变量.这非常有用.例如,假设我有这个数据帧:
categorie titre tarifMin lieu long lat img dateSortie
1 zoo, Aquar 0.0 Aquar 2.385 48.89 ilo,0
2 zoo, Aquar 4.5 Aquar 2.408 48.83 ilo,0
6 lieu Jardi 0.0 Jardi 2.320 48.86 ilo,0
7 lieu Bois 0.0 Bois 2.455 48.82 ilo,0
13 espac Canal 0.0 Canal 2.366 48.87 ilo,0
14 espac Canal -1.0 Canal 2.384 48.89 ilo,0
15 parc Le Ma 20.0 Le Ma 2.353 48.87 ilo,0
Run Code Online (Sandbox Code Playgroud)
我想创建一个新列,它使用数据框中的另一列和一些文本.用R,我做:
> y$thecolThatIWant=ifelse(y$tarifMin!=-1,
+ paste("Evenement permanent -->",y$categorie,
+ y$titre,"C partir de",y$tarifMin,"€uros"),
+ …Run Code Online (Sandbox Code Playgroud) 我有一个带有列的数据框,当作为字符串连接(行方式)时,将允许我将数据框分区为所需的形式.
> str(data)
'data.frame': 680420 obs. of 10 variables:
$ A : chr "2011-01-26" "2011-01-26" "2011-02-09" "2011-02-09" ...
$ B : chr "2011-01-26" "2011-01-27" "2011-02-09" "2011-02-10" ...
$ C : chr "2011-01-26" "2011-01-26" "2011-02-09" "2011-02-09" ...
$ D : chr "AAA" "AAA" "BCB" "CCC" ...
$ E : chr "A00001" "A00002" "B00002" "B00001" ...
$ F : int 9 9 37 37 37 37 191 191 191 191 ...
$ G : int NA NA NA NA NA NA NA …Run Code Online (Sandbox Code Playgroud) 这可能非常简单,但我尝试搜索,我最终得到的东西,如复制多行,剪切和粘贴多行等.我正在寻找的是在Vim中多次粘贴一行.
例如.复制一行'X',我想单独粘贴这一行30次,因此我将有30'X'行.是否可以在Vim中使用单个命令?请帮我.
注意:粘贴的单个命令.该行的副本可以通过'y'完成.粘贴30次左右,我需要一个命令.请帮帮我.
我在Mac Sierra上使用iterm2 v 3.0.15.我无法从其他地方剪切和粘贴(例如网页上的文字)到我的终端.例如,我从网页突出显示一些文本,按Command + C,转到终端,然后按Command + V,我得到
localhost:myproject nataliab$ 00~on the next01~
Run Code Online (Sandbox Code Playgroud)
注意我文本前后的"00~"和"01~".当我剪切并粘贴到文本编辑器或其他地方时,我看不到这些字符.当我剪切并粘贴到我的iterm2终端时,如何消除这些特殊字符的出现?