R:将数据帧中的变量除以列表或向量中的特定值
我是R的新手,请原谅我的无知 我有一个由两个变量组成的数据框架:位置和响应。我有另一个数据帧,它由每个位置的采样工作组成。我需要使用位置作为标识符,将响应除以采样努力。我知道可能有一个简单的解决办法,但我正在寻找它。我将感谢任何帮助R:将数据帧中的变量除以列表或向量中的特定值,r,R,我是R的新手,请原谅我的无知 我有一个由两个变量组成的数据框架:位置和响应。我有另一个数据帧,它由每个位置的采样工作组成。我需要使用位置作为标识符,将响应除以采样努力。我知道可能有一个简单的解决办法,但我正在寻找它。我将感谢任何帮助 Example: Dataframe 1 Location Response Loc1 25 Loc2 63 Loc3 5.63 Dataframe2 Location Sampling effort Loc1 2
Example:
Dataframe 1
Location Response
Loc1 25
Loc2 63
Loc3 5.63
Dataframe2
Location Sampling effort
Loc1 2
Loc2 6.5
Loc3 3
您可以使用
merge()
合并它们,然后只需划分两列:
df3 <- merge(df1, df2)
df3$solution <- df3$Response / df3$Sampling_effort
df3
# Location Response Sampling_effort solution
# 1 Loc1 25.00 2.0 12.500000
# 2 Loc2 63.00 6.5 9.692308
# 3 Loc3 5.63 3.0 1.876667
df3您可以使用merge()
合并它们,然后只需划分两列:
df3 <- merge(df1, df2)
df3$solution <- df3$Response / df3$Sampling_effort
df3
# Location Response Sampling_effort solution
# 1 Loc1 25.00 2.0 12.500000
# 2 Loc2 63.00 6.5 9.692308
# 3 Loc3 5.63 3.0 1.876667
df3由于您的数据帧遵循相同的顺序,因此应该足以执行以下操作
df1[,2]/df2[,2]
因为您的数据帧遵循相同的顺序,所以应该足够了
df1[,2]/df2[,2]
一种dplyr
/tidyverse
方法:
用于复制数据帧的代码
关于在R中操作数据,有很多很好的介绍,但我们确实发现datacamp one很有用——尽管它不再是免费的了。Adplyr
/tidyverse
方法:
用于复制数据帧的代码
有很多关于在R中操作数据的好介绍,但我们确实发现datacamp one很有用——尽管它不再是免费的了
df1 <-
read.table(text = "Location Response
Loc1 25
Loc2 63
Loc3 5.63
", header = TRUE, stringsAsFactors = FALSE)
df2 <-
read.table(text = "Location Sampling_effort
Loc1 2
Loc2 6.5
Loc3 3
", header = TRUE, stringsAsFactors = FALSE)
library(dplyr)
df_joined <-
df1 %>%
left_join(df2) %>%
mutate(Effect_size = Response / Sampling_effort)
> df_joined
Location Response Sampling_effort Effect_size
1 Loc1 25.00 2.0 12.500000
2 Loc2 63.00 6.5 9.692308
3 Loc3 5.63 3.0 1.876667