由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 一个令人不解的R问题
相关主题
怎样用R定位变量的位置一个有意思的问题,关于SAS的运算时间。
[合集] SAS 问题:如何在使用macro的时候保护data。如何给一个matrix的rownames起个名字name?R问题求教!
two SAS macro questionsRe: SAS help : How to use Macro to select procedurs
Is STATA better than SAS and R in plotting?Size of R object for models is so big
How to make image.plot in sasNeed advice on SAS macro debugging
Stupid SAS programming style is driving me crazy....Memory Error in pandas.concat with Python
SAS MACRO和ProcedureR 语言有像SAS 一样的macro吗?
急问:SAS batch submission with macro variable今天又“R”了 -- 感想和请教。
相关话题的讨论汇总
话题: data话题: names话题: sas话题: plot话题: macro
进入Statistics版参与讨论
1 (共1页)
d*******1
发帖数: 854
1
有一个dataframe, 很多column, 想对任意一对column做scatter plot.
比如 plot(data$columnXXXXX, data$columnYYYYY)
但是每次命名column太麻烦了, 就想到用下面这个办法
plot(names(data)[2], names(data)[3]), 但是不work
又变成plot(data$names(data)[2],data$names(data)[3]). 还是不work,
有没有大侠给提个思路?
D******n
发帖数: 2836
2
ft...
plot(data[,i],data[,j])

【在 d*******1 的大作中提到】
: 有一个dataframe, 很多column, 想对任意一对column做scatter plot.
: 比如 plot(data$columnXXXXX, data$columnYYYYY)
: 但是每次命名column太麻烦了, 就想到用下面这个办法
: plot(names(data)[2], names(data)[3]), 但是不work
: 又变成plot(data$names(data)[2],data$names(data)[3]). 还是不work,
: 有没有大侠给提个思路?

d*******1
发帖数: 854
3
看到你的答案我也FT了, HEHE. 那么names(data)[1]到底给出了什么呢? 我这个IDEA
是从你的那个RESHAPE(VARYING=NAMES(DATA)[2].....)来的, 呵呵

【在 D******n 的大作中提到】
: ft...
: plot(data[,i],data[,j])

c*****m
发帖数: 4817
4
你第一次用R??
names(data)返回的是一个vector,默认是column的names。
name(data)[1]自然就是这个vector的第一个元素,也就是第一个变量的名字

IDEA

【在 d*******1 的大作中提到】
: 看到你的答案我也FT了, HEHE. 那么names(data)[1]到底给出了什么呢? 我这个IDEA
: 是从你的那个RESHAPE(VARYING=NAMES(DATA)[2].....)来的, 呵呵

L**********A
发帖数: 7115
5
names(data)[1] 给出的就是第一col的name 咯...
你自己在R 里就可以看出来啊...
2个names 当然没法plot

IDEA

【在 d*******1 的大作中提到】
: 看到你的答案我也FT了, HEHE. 那么names(data)[1]到底给出了什么呢? 我这个IDEA
: 是从你的那个RESHAPE(VARYING=NAMES(DATA)[2].....)来的, 呵呵

D******n
发帖数: 2836
6
lz是不明白programming而已不是不明白R,
lz你要搞清楚的是,啥是变量名,啥是character变量,啥是character变量的值。
在多数programming language里面,compiler是不会把character变量的“值”当做变量
名的。
names(data) 给出来的是一个character vector

【在 L**********A 的大作中提到】
: names(data)[1] 给出的就是第一col的name 咯...
: 你自己在R 里就可以看出来啊...
: 2个names 当然没法plot
:
: IDEA

d*******1
发帖数: 854
7
我的思路还是在延续SAS MACRO中的文本替换的模式, 比如在SAS,
plot(&var1, &var2), 如果var1 and var2已经被赋值X和Y, 那么程序就会把这个PLOT
自动解读为 PLOT(X,Y), 所以我的思路就不自觉的认为R会将NAMES(DATA)[1] 和NAMES
(DATA)[2]解读成X, Y. 我记得R里也有这种文本替换的函数, 比如PASTE, 但是PASTE
在这里也不好使。 我自己的感觉SAS MACRO的文本替换在执行很多重复行的任务方面还
是很好的, 比如说自动产生1000个名字内容不同的CSV文件, 不知道R用什么功能控制
输出文件的名字在每次LOOP中改变。

变量

【在 D******n 的大作中提到】
: lz是不明白programming而已不是不明白R,
: lz你要搞清楚的是,啥是变量名,啥是character变量,啥是character变量的值。
: 在多数programming language里面,compiler是不会把character变量的“值”当做变量
: 名的。
: names(data) 给出来的是一个character vector

l*********s
发帖数: 5409
8
SAS is old school,hehe

PLOT
NAMES
PASTE

【在 d*******1 的大作中提到】
: 我的思路还是在延续SAS MACRO中的文本替换的模式, 比如在SAS,
: plot(&var1, &var2), 如果var1 and var2已经被赋值X和Y, 那么程序就会把这个PLOT
: 自动解读为 PLOT(X,Y), 所以我的思路就不自觉的认为R会将NAMES(DATA)[1] 和NAMES
: (DATA)[2]解读成X, Y. 我记得R里也有这种文本替换的函数, 比如PASTE, 但是PASTE
: 在这里也不好使。 我自己的感觉SAS MACRO的文本替换在执行很多重复行的任务方面还
: 是很好的, 比如说自动产生1000个名字内容不同的CSV文件, 不知道R用什么功能控制
: 输出文件的名字在每次LOOP中改变。
:
: 变量

d*******1
发帖数: 854
9
我觉得抛去价格因素, SAS BASE/STAT都还是很强大的,我准备还要继续用下去,毕竟
衡量一个软件是否成功longevity也是一个重要因素

【在 l*********s 的大作中提到】
: SAS is old school,hehe
:
: PLOT
: NAMES
: PASTE

D******n
发帖数: 2836
10
SAS的最大坏处就是把macro当subroutine来用了。
真正的编程语言不是这样用的。C里面也有macro,可是不会这样大量使用,而且只用在
header文件里面。
如果你没有学过正式的编程语言而且学sas,你就会误解很多东西。macro是awkward的。
在正式的编程语言里面,如果要重复执行一个东西,会用subroutein或者说function。
由于SAS是个怪胎,它没有function的功能,只能搞出来个macro,所以很多东西都跟一
般编程的思路不一样。你的说功能很好实现,如果你搞清楚我上个帖子说的那几个东西

filenames<-c('aaa','bbb','ccc');
for (file in filenames)
{
data<-read.table(file);
}

PLOT
NAMES
PASTE

【在 d*******1 的大作中提到】
: 我的思路还是在延续SAS MACRO中的文本替换的模式, 比如在SAS,
: plot(&var1, &var2), 如果var1 and var2已经被赋值X和Y, 那么程序就会把这个PLOT
: 自动解读为 PLOT(X,Y), 所以我的思路就不自觉的认为R会将NAMES(DATA)[1] 和NAMES
: (DATA)[2]解读成X, Y. 我记得R里也有这种文本替换的函数, 比如PASTE, 但是PASTE
: 在这里也不好使。 我自己的感觉SAS MACRO的文本替换在执行很多重复行的任务方面还
: 是很好的, 比如说自动产生1000个名字内容不同的CSV文件, 不知道R用什么功能控制
: 输出文件的名字在每次LOOP中改变。
:
: 变量

相关主题
Stupid SAS programming style is driving me crazy....一个有意思的问题,关于SAS的运算时间。
SAS MACRO和Procedure如何给一个matrix的rownames起个名字name?R问题求教!
急问:SAS batch submission with macro variableRe: SAS help : How to use Macro to select procedurs
进入Statistics版参与讨论
d*******1
发帖数: 854
11
SAMPLE CODE 很强大, 小本本记下了。 但是不大同意你对MACRO的解读, 还记得在一
个blog里看到一个貌似牛人对MACRO的评价, 摘录如下:
On a side note. As a “real” programmer, having been an expert in Pascal
and C and having programmed in, oh I don’t want to list them all, but I
have also done more than just take classes in Java. Anyway, Macros have a
place in programming. There have been a few times I wished Java supported
macros and not just assertions, out of my own laziness. I am a firm believer
in the right tool for the job, and that not everyth

【在 D******n 的大作中提到】
: SAS的最大坏处就是把macro当subroutine来用了。
: 真正的编程语言不是这样用的。C里面也有macro,可是不会这样大量使用,而且只用在
: header文件里面。
: 如果你没有学过正式的编程语言而且学sas,你就会误解很多东西。macro是awkward的。
: 在正式的编程语言里面,如果要重复执行一个东西,会用subroutein或者说function。
: 由于SAS是个怪胎,它没有function的功能,只能搞出来个macro,所以很多东西都跟一
: 般编程的思路不一样。你的说功能很好实现,如果你搞清楚我上个帖子说的那几个东西
: 。
: filenames<-c('aaa','bbb','ccc');
: for (file in filenames)

d*******1
发帖数: 854
12
而且MACRO和FUNCTION本质差别到底在那里呢, 你的这个例子, 不也是“FILE"这个
WORD去重复的替换aaa, bbb, ccc吗?如果SAS就会是这个样子:
%let filename=aaa#bbb#ccc;
%do i=1 %to 3;
%let file=%scan(&filename,&i,#);
proc export data=&file.............
.....................
%end;
这个和你的R CODE思路很像啊

的。
跟一

【在 D******n 的大作中提到】
: SAS的最大坏处就是把macro当subroutine来用了。
: 真正的编程语言不是这样用的。C里面也有macro,可是不会这样大量使用,而且只用在
: header文件里面。
: 如果你没有学过正式的编程语言而且学sas,你就会误解很多东西。macro是awkward的。
: 在正式的编程语言里面,如果要重复执行一个东西,会用subroutein或者说function。
: 由于SAS是个怪胎,它没有function的功能,只能搞出来个macro,所以很多东西都跟一
: 般编程的思路不一样。你的说功能很好实现,如果你搞清楚我上个帖子说的那几个东西
: 。
: filenames<-c('aaa','bbb','ccc');
: for (file in filenames)

D******n
发帖数: 2836
13
我真是无语了。。。。

believer
need
abused

【在 d*******1 的大作中提到】
: SAMPLE CODE 很强大, 小本本记下了。 但是不大同意你对MACRO的解读, 还记得在一
: 个blog里看到一个貌似牛人对MACRO的评价, 摘录如下:
: On a side note. As a “real” programmer, having been an expert in Pascal
: and C and having programmed in, oh I don’t want to list them all, but I
: have also done more than just take classes in Java. Anyway, Macros have a
: place in programming. There have been a few times I wished Java supported
: macros and not just assertions, out of my own laziness. I am a firm believer
: in the right tool for the job, and that not everyth

d*******1
发帖数: 854
14
言过了把, 说说你的看法嘛

【在 D******n 的大作中提到】
: 我真是无语了。。。。
:
: believer
: need
: abused

D******n
发帖数: 2836
15
macro的本质是替换。
function的本质是抽象。

【在 d*******1 的大作中提到】
: 而且MACRO和FUNCTION本质差别到底在那里呢, 你的这个例子, 不也是“FILE"这个
: WORD去重复的替换aaa, bbb, ccc吗?如果SAS就会是这个样子:
: %let filename=aaa#bbb#ccc;
: %do i=1 %to 3;
: %let file=%scan(&filename,&i,#);
: proc export data=&file.............
: .....................
: %end;
: 这个和你的R CODE思路很像啊
:

D******n
发帖数: 2836
16
你没学过正式编程语言,很难跟你说清楚啊。
学完SAS去理解R真是够呛。

【在 d*******1 的大作中提到】
: 言过了把, 说说你的看法嘛
d*******1
发帖数: 854
17
这个解释够抽象, 呵呵

【在 D******n 的大作中提到】
: macro的本质是替换。
: function的本质是抽象。

d*******1
发帖数: 854
18
说不说在你, 明不明白在我嘛, 呵呵,毕竟像牛人请教的机会也不多啊

【在 D******n 的大作中提到】
: 你没学过正式编程语言,很难跟你说清楚啊。
: 学完SAS去理解R真是够呛。

D******n
发帖数: 2836
19
如果我没有理解错,macro只是编译时候替换,所以有loop的话,譬如100个循环,其实
就是在编译时候动态生成了100X的code,然后再执行。
function是抽象的,编译好之后,就只有1X那么多的code,只是在执行的时候cpu,动态
运行那个code,100次

【在 D******n 的大作中提到】
: macro的本质是替换。
: function的本质是抽象。

d*******1
发帖数: 854
20
对, 其实说MACRO是文本替换不大准确, 应该是script generator。

动态

【在 D******n 的大作中提到】
: 如果我没有理解错,macro只是编译时候替换,所以有loop的话,譬如100个循环,其实
: 就是在编译时候动态生成了100X的code,然后再执行。
: function是抽象的,编译好之后,就只有1X那么多的code,只是在执行的时候cpu,动态
: 运行那个code,100次

相关主题
Size of R object for models is so bigR 语言有像SAS 一样的macro吗?
Need advice on SAS macro debugging今天又“R”了 -- 感想和请教。
Memory Error in pandas.concat with Python求教 SAS数据转化
进入Statistics版参与讨论
D******n
发帖数: 2836
21
。。。。。。这个script generate的方式就是替换啊。。。。fts。

【在 d*******1 的大作中提到】
: 对, 其实说MACRO是文本替换不大准确, 应该是script generator。
:
: 动态

d*******1
发帖数: 854
22
你这就有点defensive了, 呵呵, 对了, 你的SAS好像也挺好, 是不是捏着鼻子学的

【在 D******n 的大作中提到】
: 。。。。。。这个script generate的方式就是替换啊。。。。fts。
D******n
发帖数: 2836
23
....哎,我不是跟你争,我是怕你理解错了。一片好心。
凡是先正式学过编程的人学sas都会很痛苦的。当然虽然sas很ugly,可是毕竟那么多年
了,修修补补,只要你用熟了也不会不太方便。只是单纯从易学性跟逻辑性来说,R比S
AS强多了。

【在 d*******1 的大作中提到】
: 你这就有点defensive了, 呵呵, 对了, 你的SAS好像也挺好, 是不是捏着鼻子学的
d*******1
发帖数: 854
24
这个我同意,我这样没基础的可能学SAS还容易些。 不过我觉的R还是容易理解的, 我
的问题在于实践太少了, 所以会闹一些笑话, 呵呵

比S

【在 D******n 的大作中提到】
: ....哎,我不是跟你争,我是怕你理解错了。一片好心。
: 凡是先正式学过编程的人学sas都会很痛苦的。当然虽然sas很ugly,可是毕竟那么多年
: 了,修修补补,只要你用熟了也不会不太方便。只是单纯从易学性跟逻辑性来说,R比S
: AS强多了。

B******5
发帖数: 4676
25
非常有同感,我觉得SAS对我来说非常难以理解,所以干脆放弃了。。。

比S

【在 D******n 的大作中提到】
: ....哎,我不是跟你争,我是怕你理解错了。一片好心。
: 凡是先正式学过编程的人学sas都会很痛苦的。当然虽然sas很ugly,可是毕竟那么多年
: 了,修修补补,只要你用熟了也不会不太方便。只是单纯从易学性跟逻辑性来说,R比S
: AS强多了。

s**********0
发帖数: 41
26
R里面用get(name[i])就可以调出名为name[i]的变量,跟SAS里的&name差不多了
1 (共1页)
进入Statistics版参与讨论
相关主题
今天又“R”了 -- 感想和请教。How to make image.plot in sas
求教 SAS数据转化Stupid SAS programming style is driving me crazy....
请教个用SAS读数据的问题。SAS MACRO和Procedure
[转载] Re: SAS plot problem急问:SAS batch submission with macro variable
怎样用R定位变量的位置一个有意思的问题,关于SAS的运算时间。
[合集] SAS 问题:如何在使用macro的时候保护data。如何给一个matrix的rownames起个名字name?R问题求教!
two SAS macro questionsRe: SAS help : How to use Macro to select procedurs
Is STATA better than SAS and R in plotting?Size of R object for models is so big
相关话题的讨论汇总
话题: data话题: names话题: sas话题: plot话题: macro