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'的相应列(这里是单个值)相乘。 –