问题相当简单。我们假设我有两个数据帧:
> dput(x)
structure(list(a1 = 1:3, b1 = c("a", "b", "c")), .Names = c("a1", "b1"), row.names = c(NA, -3L), class = "data.frame")
> dput(z)
structure(list(a1 = 4:6, b2 = c("d", "e", "f")), .Names = c("a1", "b2"), row.names = c(NA, -3L), class = "data.frame")
head(x)
a1 b1
1 1 a
2 2 b
3 3 c
head(z)
a1 b2
1 4 d
2 5 e
3 6 f
当我收集这些数据帧时,我得到了这个:
cbind(x,z)
a1 b1 a1 b2
1 1 a 4 d
2 2 b 5 e
3 3 c 6 f
但我想要这个:
cbind(x,z)
a1.x b1 a1.y b2
1 1 a 4 d
2 2 b 5 e
3 3 c 6 f
其中列名称不重复,而是匹配的列名称获得.x和.y。这类似于我认为的合并行为。注意我不一定需要使用cbind(),只需(最好)一个单行函数即可完成。
谢谢!
答案 0 :(得分:4)
我们可以merge
使用by = 0
merge(x, z, by = 0)
# Row.names a1.x b1 a1.y b2
#1 1 1 a 4 d
#2 2 2 b 5 e
#3 3 3 c 6 f
?merge
中的文件指定
要合并的列可以通过名称,数字或逻辑向量来指定:名称" row.names"或者数字0指定行名称。
所以我们在这里按照rownames
rownames(x)
#[1] "1" "2" "3"
rownames(z)
#[1] "1" "2" "3"
答案 1 :(得分:1)
我们可以将<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="flex_ramme">
<form action="send_bestilling.php" method="post">
<fieldset>
<legend>Bestilling af maling</legend>
<div class="maling_rekke">
<div class="maling_ramme">
<img class="maling_billede maling_felt" src="spand.jpg" alt="Maling type A">
</div>
<p class="maling_type maling_felt">Sigma S2U Satin - slidstærk</p>
<p class="maling_pris">100 kr.</p><input type="hidden" name="pris" value="100">
<p class="maling_felt">Antal:</p> <input class="maling_input maling_felt" type="text" name="antal" value="0"><br>
<p class="maling_felt">Subtotal (inkl. moms):</p> <input class="maling_sub maling_felt" type="text" name="subpris" value="0" readonly>
</div>
<div class="maling_rekke">
<div class="maling_ramme">
<img class="maling_billede maling_felt" src="spand2.jpg" alt="Maling type A">
</div>
<p class="maling_type maling_felt">Yunik Træmaling</p>
<p class="maling_pris">200 kr.</p><input type="hidden" name="pris" value="200">
<p class="maling_felt">Antal:</p> <input class="maling_input maling_felt" type="text" name="antal" value="0"><br>
<p class="maling_felt">Subtotal (inkl. moms):</p> <input class="maling_sub maling_felt" type="text" name="subpris" value="0" readonly>
</div>
<div class="maling_rekke">
<div class="maling_ramme">
<img class="maling_billede maling_felt" src="spand3.jpg" alt="Maling type A">
</div>
<p class="maling_type maling_felt">Yunik Radiatormaling</p>
<p class="maling_pris">300 kr.</p><input type="hidden" name="pris" value="300">
<p class="maling_felt">Antal:</p> <input class="maling_input maling_felt" type="text" name="antal" value="0"><br>
<p class="maling_felt">Subtotal (inkl. moms):</p> <input class="maling_sub maling_felt" type="text" name="subpris" value="10" readonly>
</div>
</fieldset>
<fieldset>
<legend>Godkendt bestilling</legend>
<div class="maling_rekke">
Total (inkl. moms): <input class="maling_totalt maling_felt" type="text" name="totpris" value="0" readonly> DKK.</br>
<input class="maling_felt" type="checkbox" name="godkend" value="Bike">Jeg godkender hermed bestillingen<br>
</div>
</fieldset>
<div class="knapper">
<input id="knap_nulstil" type="reset" value="Nulstil">
<input id="knap_bestil" type="submit" value="Send bestilling">
</div>
</form>
</div> <!-- Slut anden flexramme -->
与merge
row.names
答案 2 :(得分:0)
使用cbind函数组合两个数据帧后,可以为新数据帧创建唯一的列名。
-xv
如果您打印出来,您将获得
a1 b1 a1.1 b2
1 1 a 4 d
2 2 b 5 e
3 3 c 6 f