我有一堆列,我需要将第一列粘贴到每个其他列中。除了实际的单词而不是字母之外,它看起来像这样,并且有几百列。
TEST0 TEST1 TEST2 TEST3 TEST4
1 Q1: AA AA AA AA AA AA BB BB BB
2 Q2:
3 Q3: BB BB BB CC CC CC CC CC CC CC CC CC
4 Q4: DD DD DD DD DD DD DD DD DD
我能够将第一列一次粘贴到另一列中:
paste(test[,2],test[,3])
[1] "Q1: AA AA AA" "Q2: " "Q3: BB BB BB" "Q4: DD DD DD "
paste(test[,2],test[,4])
[1] "Q1: AA AA AA " "Q2: " "Q3: CC CC CC " "Q4: "
但是有没有办法一次做多个列?感谢
答案 0 :(得分:1)
以下是使用dplyr
执行此操作的方法。首先创建自己的粘贴功能:
df <- data.frame(A = LETTERS, B = 1:26, C = 1:26)
head(df)
A B C
1 A 1 1
2 B 2 2
3 C 3 3
4 D 4 4
5 E 5 5
pasteA <- function(., x) paste0(df$A,.)
df %>%
mutate_if(.predicate = c(F, rep(T, ncol(df)-1)), .funs = list(pasteA))
A B C
1 A A1 A1
2 B B2 B2
3 C C3 C3
4 D D4 D4
5 E E5 E5
我们使用mutate_if
使用逻辑向量选择除第一列之外的所有列。
答案 1 :(得分:0)
这是一个带<RegistryKey Root="HKLM"
Key="Software\Apache Software Foundation\Procrun 2.0\$(var.serviceName)\Parameters"
ForceDeleteOnUninstall="yes">
<RegistryValue Key="Java" Name="Classpath" Type="string" Value="[JettyHomeDirectory]start.jar"/>
循环的基础解决方案。对于每个目标列,Private Sub CommandButton1_Click()
Dim SAPapplication, Connection, session As Object
Set SAPGUIAuto = GetObject("SAPGUI")
Set SAPapplication = SAPGUIAuto.GetScriptingEngine
Set Connection = SAPapplication.Children(0)
Set session = Connection.Children(0)
session.findById("wnd[0]").maximize
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[0]/okcd").Text = "******"
session.findById("wnd[0]").sendVKey 0
它的第一列。
for
其中paste
给出df <- data.frame(a = letters[1:5], b = 1:5, c = 5:1)
for (i in 2:length(df)) {
df[[i]] <- paste(df[[1]], df[[i]], sep = ": ")
}
的列数。
结果:
length
答案 2 :(得分:0)
lapply
(因为data.frame
是列的列表,所以有效):
as.data.frame(lapply(test[-1], function (x) paste(test[[1]], x)))