谢谢你的帮助。我正在尝试编写一个使用从.csv文件中选择的值的等式。它看起来像这样,我们称之为df。
df<-read.csv("SiteTS.csv", header=TRUE,sep=",")
df
Site TS
1 H4A1 -42.75209
2 H4A2 -43.75101
3 H4A3 -41.75318
4 H4C3 -46.76770
5 N1C1 -42.68940
6 N1C2 -36.95200
7 N1C3 -43.16750
8 N2A2 -38.58040
9 S4C1 -35.32000
10 S4C2 -34.52420
我的等式需要每个站点的TS列中的值。我正在尝试使用TS创建一个名为SigmaBS
的新列,其中包含等式的结果。
df["SigmaBS"]<-10^(subset(df, Site=="H4A1"/10)
这是我遇到问题的地方,因为子集函数返回与Site列相关的所有列= H4A1
subset(df, Site =="H4A1")
Site TS
1 2411 -42.75209
但是,我只需要值-42.75209。
如果这是一个简单的问题,我道歉,但我非常感谢您提供的任何帮助。
答案 0 :(得分:1)
如果你坚持使用子集函数,它有一个select
参数:
subset(df, Site=="H4A1", select="TS")
更好的选择是使用[]
表示法:
df[df$Site=="H4A1", "TS"]
或$
运营商:
subset(df, Site=="H4A1")$TS
答案 1 :(得分:1)
您可以使用以下简单命令:
df$SigmaBS <- 10 ^ (df$TS / 10)
答案 2 :(得分:0)
听起来您正在尝试创建一个名为SigmaBS
的新列,其中每行的值为10^(value of TS) / 10
如果是这样,这段代码应该有效:
SigmaBS <- sapply(df$TS, function(x) 10^(x/10))
df$SigmaBS <- SigmaBS