0
我遇到問題...我有兩個數據。有很多列的框架和這兩個數據框架的長度不同,實際上一個框架有很多行和第二個數據框架。只有一行......但是在兩個數據框架中都有相同名稱的列。現在,我想將匹配的列彼此相乘。我沒有解決它。請幫幫我。如何乘以屬於不同數據的同名列。框架
我遇到問題...我有兩個數據。有很多列的框架和這兩個數據框架的長度不同,實際上一個框架有很多行和第二個數據框架。只有一行......但是在兩個數據框架中都有相同名稱的列。現在,我想將匹配的列彼此相乘。我沒有解決它。請幫幫我。如何乘以屬於不同數據的同名列。框架
的命令,如果你想乘的所有列
mapply("*", DataFrame1, DataFrame2)
應該工作。如果相關列只是數據框中所有列的子集,我們首先需要確定兩個數據框中存在的列。
mapply("*", DataFrame1[intersect(names(DataFrame1), names(DataFrame2))],
DataFrame2[intersect(names(DataFrame1), names(DataFrame2))])
我相信這種方法適用於任何一對數據幀,因爲R會根據需要重複較短(較少的行),以匹配較長的數據幀。 –
Sven Hohenstein謝謝你的回覆......我只想問一個與此相關的更多問題,我可以以同樣的方式使用一個data.frame的行名。例如mapply(「*」,DataFrame1 [intersect(row.names(DataFrame1),names(DataFrame2))],DataFrame2 [intersect(row.names(DataFrame1),names(DataFrame2))]) 致敬 Maria – Gongon
@maria riaz這個命令應該工作:'mapply(「*」,as.data.frame(t(DataFrame1))[intersect(rownames(DataFrame1),names(DataFrame2))],DataFrame2 [intersect(rownames(DataFrame1),names DataFrame2))])'。通過這個命令,'DataFrame1'的行與'DataFrame2'的相應列(這裏是單個值)相乘。 –