为什么as.data.frame在R编程中这样做?
首先,我想告诉大家,我是R编程新手。我在做一些R代码的实验。我正面临一些意想不到的奇怪行为。我想有人能帮我弄明白 我运行以下代码从CSV文件读取数据:为什么as.data.frame在R编程中这样做?,r,R,首先,我想告诉大家,我是R编程新手。我在做一些R代码的实验。我正面临一些意想不到的奇怪行为。我想有人能帮我弄明白 我运行以下代码从CSV文件读取数据: normData= read.csv("normData.csv"); 我的normData看起来像: 但当我运行以下代码以形成数据帧时: datExpr0 = as.data.frame(t(normData)); 我得到以下数据: 有人能告诉我,额外的原始数据(v1、v2、v3、v4、v5、v6)是从哪里来的吗?尝试使用: setNa
normData= read.csv("normData.csv");
我的normData
看起来像:
但当我运行以下代码以形成数据帧时:
datExpr0 = as.data.frame(t(normData));
我得到以下数据:
有人能告诉我,额外的原始数据(v1、v2、v3、v4、v5、v6)是从哪里来的吗?尝试使用:
setNames(as.data.frame(t(normData[-1])), normData[[1]])
但是,最好看看是否可以使用read.table
中的row.names
参数直接读取“X”作为行名。然后您应该能够直接使用as.data.table(t(…)
下面是一个小示例来说明发生了什么: 以
data.frame
开头,第一列为字符:
df <- data.frame(A = letters[1:3],
B = 1:3, C = 4:6)
df
# A B C
# 1 a 1 4
# 2 b 2 5
# 3 c 3 6
因此,我们首先删除列,并使用列中的值替换“V1”、“V2”。。。名字
setNames(as.data.frame(t(df[-1])), df[[1]])
# a b c
# B 1 2 3
# C 4 5 6
尝试使用:
setNames(as.data.frame(t(normData[-1])), normData[[1]])
但是,最好看看是否可以使用read.table
中的row.names
参数直接读取“X”作为行名。然后您应该能够直接使用as.data.table(t(…)
下面是一个小示例来说明发生了什么: 以
data.frame
开头,第一列为字符:
df <- data.frame(A = letters[1:3],
B = 1:3, C = 4:6)
df
# A B C
# 1 a 1 4
# 2 b 2 5
# 3 c 3 6
因此,我们首先删除列,并使用列中的值替换“V1”、“V2”。。。名字
setNames(as.data.frame(t(df[-1])), df[[1]])
# a b c
# B 1 2 3
# C 4 5 6
@维西里,很高兴听到这有帮助。但一定要查看
read.table
/read.csv
中的行.names
参数。这可能是一个更直接的解决方案,但如果没有实际csv文件的一些示例行,我就说不出来了。@vessilli,很高兴听到它有帮助。但一定要查看read.table
/read.csv
中的行.names
参数。这可能是一个更直接的解决方案,但如果没有实际csv文件的一些示例行,我就说不出来。